WebSocketシステムのアップグレードによるエンドユーザーのレイテンシの大幅な改善について

原文:WebSocket Systems Upgrade Complete: Significant End-User Latency Improvements

2020年4月22日日本時間02:00~04:30の間、BitMEXは次世代版のフィードアーキテクチャを導入しました。このシステムは内部的に「Publisher」と呼ばれています。これは、取引エンジンからの生データのFirehoseを受信し、内部のIPCフォーマットからJSONに解析し、サブスクリプションに分割し、エッジのウェブサーバーに公開する役割を担っています。

その結果、データフィードの大半において、当社の内部パブリッシャーシステムで要する時間のうち、p90、p95、およびp99のレイテンシが10倍に改善され、一部のフィードでは20倍近くに達しました。最も影響が大きかったフィードは、すべてのシンボルに対して、trade、orderBook(すべてのタイプ)、order、execution でした。最も影響が少なかったフィードは position と margin でした。

このレイテンシの改善により、直接的にエンドユーザ様がメリットをうけることになります。Publisherが、エンジンイベントとアプリケーション間のレイテンシのすべての原因ではありませんが、最大の原因であり、最も多くの外れ値を生み出していました。ユーザ様のアプリケーション側では、レイテンシの分散が大幅に改善されることが期待されます。現在、当社のWebSocket実装では、これらの数値をさらに改善するために、レイテンシの原因をターゲットにして、その原因を取り除いています。

こちらのバージョンは当社のPublisherアーキテクチャの第4世代であり、これまでで最速です。第4世代では、テーブル間の順序付けと正確なサブスクリプションの構築を維持しながら、非常に多くのメッセージを並行して処理することができます。しかし同時に、テーブル間の順序付けはもはや保証されていません

結果として、レイテンシの分散が劇的に改善されました。以下のチャートはWebSocketサーバに到達する前のorderBookL2_25更新の平均処理時間を示しており、今回の改善をご確認頂けます。


トレードフィードでも同様の改善が見られます。

BitMEXのサブスクリプションの大部分は、上記のパターンに従っています。以下のチャートは、すべてのテーブルを合わせた平均値、p90、p95、およびp99の改善を示しています。

この取引体験の向上をお楽しみいただければ幸いです。私たちのチームは、エンジン、マッチングと再マージンのスループット、データベースのスループットと容量、ウェブ層の応答時間と自動スケーリング、さらには新しい注文と契約の種類に至るまで、より多くのインフラストラクチャのアップグレードを提供するために懸命に取り組んでいます。今後数ヶ月の間にローンチされ次第、これらについても発表致します。