Обновление систем передачи данных по WebSocket завершено: значительные сокращения задержек для конечного пользователя

С 17:00 до 19:30 UTC 21 апреля 2020 года BitMEX развернула архитектуру каналов данных (Feeds) нового поколения. Эта система известна внутри платформы как “Издатель” (Publisher). Она отвечает за получение исходных данных от торгового движка, их парсинг из нашего внутреннего IPC-формата в JSON, разделение на подписки и публикацию на конечных веб-серверах.

Результат – 10-кратное сокращение задержек p90, p95 и p99 во времени, проводимом данными в нашей внутренней системе Publisher для большинства каналов данных, при этом по некоторым подпискам достигнуто почти 20-кратное увеличение производительности. Наиболее затронутые подписки: trade, orderBook (все типы), order, и execution, по всем торгуемым инструментам. Наименее затронутые подписки:  position и margin. 

Большая часть этого преимущества сокращения задержки передачи данных распространяется непосредственно на конечного пользователя. Хотя Publisher не является единственным источником задержки между трансляцией событий движка и их получением вашим приложением, он был самым крупным и вызывал наибольшее количество статистических выбросов данных. Мы ожидаем значительные изменения в сторону улучшения производительности работы ваших приложений. На данный момент мы продолжаем выявлять и устранять источники задержки обработки и передачи данных через WebSocket для дальнейшего улучшения этих показателей. 

Это четвертое поколение реализации нашей архитектуры Publisher и самое производительное на сегодняшний день. Модуль способен обрабатывать очень большой объем сообщений параллельно, сохраняя порядок внутри таблиц и точное построение данных подписки. Однако, корректность внутритабличной сортировки больше не гарантируется.

Результирующее улучшение изменения задержки является значительным, как видно из диаграммы ниже, показывающей среднее время обработки обновлений orderBookL2_25 до того, как они достигают серверов WebSocket.

Похожее улучшение было достигнуто и в ленте подписки trade: 

Подавляющее большинство WS-подписок BitMEX следуют вышеуказанному шаблону поведения.  На следующей диаграмме показано улучшение среднего показателя, p90, p95 и p99 во всех таблицах вместе взятых:

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