Как работает паттерн дизраптора LMAX?

Я пытаюсь понять шаблон дизраптора . Я смотрел видео InfoQ и пытался прочитать их статью. Я понимаю, что здесь задействован кольцевой буфер, который инициализируется как чрезвычайно большой массив, чтобы использовать локальность кеша и исключить выделение новой памяти.

Похоже, существует одно или несколько атомарных целых чисел, отслеживающих позиции. Кажется, что каждое «событие» получает уникальный идентификатор, и его положение в кольце определяется путем нахождения его модуля по отношению к размеру кольца и т. Д. И т. Д.

К сожалению, у меня нет интуитивного ощущения как это устроено. Я выполнил множество торговых приложений и изучил модель акторов , посмотрел на SEDA и т. Д.

В своей презентации они упомянули, что этот шаблон в основном определяет принцип работы маршрутизаторов; однако я не нашел хороших описаний того, как работают маршрутизаторы.

Есть ли какие-нибудь хорошие указатели на лучшее объяснение?

202
задан Community 3 October 2014 в 07:06
поделиться