日本語版
最新ニュース
世界

Netflix のグラフ抽象化の内部: 世界中で 650 TB のグラフ データをミリ秒で処理

Netflix のエンジニアが構築した グラフ抽象化、大規模なグラフ データをリアルタイムで管理するように設計された高スループット システム。このプラットフォームは、Netflix ゲーム用のソーシャル グラフや、運用監視やインシデント分析に使用されるサービス トポロジ グラフなど、いくつかの内部サービスを強化します。エッジ接続をエッジ プロパティから分離し、データをグローバルに複製することにより、システムは約 650 TB のグラフ データに対してミリ秒レベルのクエリを可能にし、エンジニアが複雑な関係を迅速かつ確実に分析できるようにします。 グラフ処理システムは、多くの場合、表現力豊かなクエリと予測可能なパフォーマンスの間のトレードオフに直面します。従来のグラフ データベースは、柔軟なトラバーサル機能と複雑なクエリ機能を優先する傾向がありますが、多くの運用ワークロードでは、高スループットでの非常に高速な応答が必要です。これらの要件を満たすために、Netflix のシステムはトラバーサルの深さを制限し、多くの場合、定義された開始ノードを必要とし、クエリの柔軟性と引き換えに大規模な一貫した低レイテンシーを実現しています。 グラフ抽象化は、いくつかの内部ユースケースをサポートします。これらには、Netflix エコシステム内のサービス間のインタラクションをキャプチャするリアルタイム分散グラフ、Netflix ゲームがユーザー関係をモデル化するために使用するソーシャル グラフ、エンジニアがインシデントや根本原因の調査中に依存関係を分析するのに役立つサービス トポロジ グラフが含まれます。プラットフォームは、履歴グラフの状態も維持します。 TimeSeries の抽象化、グラフの進化に対する分析、監査、および一時的なクエリを可能にします。 グラフ抽象化は、スタンドアロンのグラフ データベースを構築するのではなく、Netflix の既存のデータ インフラストラクチャ上のレイヤーとして実装されます。最新のグラフ状態は次の場所に保存されます。 キー値の抽象化一方、履歴の変更は TimeSeries 抽象化を通じて記録されます。待ち時間を短縮するために、システムは次のものと統合されています。 EVCキャッシュNetflixの分散キャッシュ層。グラフ スキーマはメモリにロードされて厳密に適用されるため、検証、最適化された走査計画、および無効なクエリ パスの排除が可能になります。 このプラットフォームはキャッシュ戦略も使用します。ライトアサイド キャッシュは重複したエッジ書き込みを防ぎ、リードアサイド キャッシュはノードとエッジのプロパティへのアクセスを高速化します。これらの技術により、読み取りおよび書き込みの増幅が軽減され、重いワークロード下でもパフォーマンスが維持されます。グラフ抽象化は、以下からインスピレーションを得た…

Netflix のグラフ抽象化の内部: 世界中で 650 TB のグラフ データをミリ秒で処理

1774275375
2026-03-23 13:54:00

Netflix のエンジニアが構築した グラフ抽象化、大規模なグラフ データをリアルタイムで管理するように設計された高スループット システム。このプラットフォームは、Netflix ゲーム用のソーシャル グラフや、運用監視やインシデント分析に使用されるサービス トポロジ グラフなど、いくつかの内部サービスを強化します。エッジ接続をエッジ プロパティから分離し、データをグローバルに複製することにより、システムは約 650 TB のグラフ データに対してミリ秒レベルのクエリを可能にし、エンジニアが複雑な関係を迅速かつ確実に分析できるようにします。

グラフ処理システムは、多くの場合、表現力豊かなクエリと予測可能なパフォーマンスの間のトレードオフに直面します。従来のグラフ データベースは、柔軟なトラバーサル機能と複雑なクエリ機能を優先する傾向がありますが、多くの運用ワークロードでは、高スループットでの非常に高速な応答が必要です。これらの要件を満たすために、Netflix のシステムはトラバーサルの深さを制限し、多くの場合、定義された開始ノードを必要とし、クエリの柔軟性と引き換えに大規模な一貫した低レイテンシーを実現しています。

グラフ抽象化は、いくつかの内部ユースケースをサポートします。これらには、Netflix エコシステム内のサービス間のインタラクションをキャプチャするリアルタイム分散グラフ、Netflix ゲームがユーザー関係をモデル化するために使用するソーシャル グラフ、エンジニアがインシデントや根本原因の調査中に依存関係を分析するのに役立つサービス トポロジ グラフが含まれます。プラットフォームは、履歴グラフの状態も維持します。 TimeSeries の抽象化、グラフの進化に対する分析、監査、および一時的なクエリを可能にします。

グラフ抽象化は、スタンドアロンのグラフ データベースを構築するのではなく、Netflix の既存のデータ インフラストラクチャ上のレイヤーとして実装されます。最新のグラフ状態は次の場所に保存されます。 キー値の抽象化一方、履歴の変更は TimeSeries 抽象化を通じて記録されます。待ち時間を短縮するために、システムは次のものと統合されています。 EVCキャッシュNetflixの分散キャッシュ層。グラフ スキーマはメモリにロードされて厳密に適用されるため、検証、最適化された走査計画、および無効なクエリ パスの排除が可能になります。

このプラットフォームはキャッシュ戦略も使用します。ライトアサイド キャッシュは重複したエッジ書き込みを防ぎ、リードアサイド キャッシュはノードとエッジのプロパティへのアクセスを高速化します。これらの技術により、読み取りおよび書き込みの増幅が軽減され、重いワークロード下でもパフォーマンスが維持されます。グラフ抽象化は、以下からインスピレーションを得た gRPC トラバーサル API を公開します。 グレムリン、サービスが走査ステップを連鎖させ、フィルターを適用し、結果を制限できるようにします。

Netflix のエンジニアは、リージョン間の非同期レプリケーションによってグローバルな可用性が実現され、高スループットをサポートしながら結果整合性を確保したと説明しています。キャッシュ レイヤーと耐久性のあるストレージの両方がグラフ データをリージョン間でレプリケートし、レイテンシ、可用性、一貫性のトレードオフのバランスをとります。

キャッシュ全体のグローバル レプリケーション (出典: Netflix 技術ブログ)

Netflix のエンジニアは、実稼働環境では、このシステムがシングルホップのトラバーサルで 1 桁のミリ秒のレイテンシーを実現し、90 パーセンタイルでの 2 ホップのクエリで 50 ミリ秒未満を実現し、大規模な予測可能なパフォーマンスを提供すると強調しています。この設計では、トラバーサルの計画と実行のバランスが慎重に取られ、大規模なグラフ データセットの効率的な探索が可能になります。

Netflix がライブ コンテンツ、ゲーム、広告などの新しい分野に拡大するにつれて、プラットフォーム全体で高スループット、グローバルな可用性、低遅延アクセスを維持しながら、ユーザー、サービス、コンテンツ間の関係をモデル化する上で、グラフ抽象化がますます重要な役割を果たすことが期待されています。

#Netflix #のグラフ抽象化の内部 #世界中で #のグラフ #データをミリ秒で処理

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。