Meta、10億件/秒処理の新仲介役
Meta Introduces ZGateway: A Stateless Proxy Tier That Unifies ZippyDB Traffic and Handles Over 1 Billion Operations Per Second

Metaは、データ処理の仲介役「ZGateway」を導入し、1秒に10億件超の処理を実現。これにより、大規模なサービス運用における安定性と効率が大幅に向上します。
Metaのエンジニアリングチームは、クライアントアプリケーションとZippyDBの間に位置するプロキシ層であるZGatewayを導入しました。ZippyDBはMetaで最も広く使われているキーバリューストアであり、製品のメタデータ、カウンター、設定を1秒あたり数十億件の操作で支えています。ZGatewayは、100万以上のクライアントホストにわたる接続の乱雑さを解決するための修正として始まり、バッチ処理、アドミッションコントロール、キャッシング、フェイルオーバーの拠点へと成長しました。Why ZippyDB Needed a Proxy
直接アクセスする場合、すべてのZippyDBクライアントは、必要なすべてのデータベースホストに接続していました。単一のクライアントが数十万のホストにわたる数万のシャードにアクセスする可能性があり、そのため一般的なクライアントと一般的なデータベースホストの両方が数万のTLS接続を保持していました。アイドル状態の各接続は、両端でメモリ、CPU、ファイルディスクリプタを消費し、クライアント群が増えるたびに入力カウントが増加しました。再接続の嵐は、ファイルディスクリプタの枯渇やOOMs(メモリ不足)によるクラッシュを引き起こしました。あるインシデントでは、ルーティングのバグによりすべてのクライアントがシャードごとに接続を開き、フリートが再起動ループに陥りました。数百ものチームがクライアントフリートを所有しているため、クライアント側の修正は非現実的でした。What is ZGateway
ZGatewayは、ZippyDBクライアントとZServerデータベースフリートの間に位置するステートレスなプロキシ層です。Metaによると、これは1秒あたり10億件以上の操作を処理し、ZippyDBトラフィックの約40%を担っており、平均的なユースケースでは約6%の計算オーバーヘッドで60%を超えることが予測されています。これは、MetaのサービスメッシュであるServiceRouterを通じて発見される地域ごとの層として、純粋なプロキシとリードスルーキャッシュの2つの形式で実行されます。エンジンはMetaの分厚いC++ ZippyDBクライアントであるため、ZGatewayは実質的にマネージドサービスとして実行されるZippyDBクライアントです。クライアントは、地域ごとのZGatewayホストにスティッキー接続を介してリクエストを送信します。ZGatewayホストはTLSを終端し、ユースケースのACLsに対して認証を行い、テナントごとのアドミッションコントロールとシェーピングを適用し、シャードを解決し、キャッシング層でローカルキャッシュをチェックし、他の処理中のリクエストとバッチ処理を行います。
この記事について質問
記事の内容に答えます。記事外のことは都度ウェブで調べます。