Как LMAX вынесла торговую логику в один поток
Разбор архитектуры LMAX показывает, почему многопоточность не всегда ускоряет критический путь. Бизнес-логика торговой платформы последовательно обрабатывала заявки в памяти. На сервере с двумя четырёхъядерными процессорами Nehalem по 3 ГГц и 32 ГБ памяти один поток достигал 6 млн заявок в секунду. Это исторический результат 2011 года, а не ориентир для любой системы.
Состояние восстанавливалось из журнала входных событий: ночной снимок и повтор событий за день возвращали систему в работу менее чем за минуту. Ввод, журналирование, репликацию и вывод распределили по очередям Disruptor без блокировок.
Статья Мартина Фаулера об архитектуре LMAX даёт карту этих компромиссов. Читать стоит разработчикам высоконагруженных систем: чтобы перед добавлением потоков отделить вычисления от ввода-вывода и измерить варианты на своей нагрузке.
Post #3023
98
