LinkedInは最近、同社のグラフデータベースであるLIquidが、メンバー、学校、スキル、会社、ポジション、仕事、イベントなどのすべての接続のインデックス作成とリアルタイムアクセスを自動化する方法を発表した。Economic Graphとして知られるこのグラフは2700億のエッジを持ち、その数は増え続けており、1秒間に200万回のクエリを処理するまでに成長した。
LinkedInは「People You May Know」(PYMK)推薦システムをレガシーなGAIAシステムからLIquidに移行した。この変更により1秒あたりのクエリー数(QPS)、レイテンシー、CPU使用率が大幅に改善された。QPSは120QPSから18000QPSに増加し、レイテンシーは1秒以上から平均50ms以下に、CPU使用率は1/3以下となっている。またLIquidはリアルタイムのデータクエリを可能にする新しいデータベースインデックス技術を導入し、秒単位でのレコメンデーションを可能にした。
上図は本システムのアーキテクチャを示したものである。このアーキテクチャでは短いレイテンシと許容できるハードウェアコストでグラフのクエリに答えるためにLIquidを採用している。Economic GraphのLIquidクエリによって生成された数百の候補をもとに、第2のランキング機能を適用する。このランキング機能は、Veniceの機械学習による特徴とApache Pinotの分析見識に基づいて、上位候補をスコアリングして選択する。フィルタリングのステップでは、このランク付けされたリストをレンダリングして最終的なスコアリングの準備を行う。
LIquidの設計により、現在の10倍まで拡張することができ、LinkedInの9億3千万人以上の会員のための有機的成長と新しいセマンティックドメインに対応することができる。99.99%の可用性を提供し、グラフのサイズとアクティビティ量の増加に対応するために自動的にスケールする。
グラフデータベースは、Datalogをベースとしたコンポーザブルで宣言的なクエリ言語を採用しており、開発者は効率的にデータにアクセスして活用できる。コンポーザブル言語により開発者は既存の機能(モジュールと呼ばれる)をベースに構築することができ、宣言型言語により開発者が意図するものを表現することに集中し、LIquidにより効率的なアクセスを自動化できる。このセットアップにより、開発者はデータセットを素早く変更し、データベースの調整と更新にかかる時間を大幅に短縮できる。
LinkedInのエンジニアリング・ディレクターであるBogdan Artintescu氏は、LIquidのロードマップを説明する。
メンバーが何でもできるようにするためのロードマップでは、メンバーの質問に答えるための洗練度を高める必要がある。これは、主に2つの軸で改善できる。第1にクエリの複雑さとEconomic Graphに追加されるデータソースの多様性により、新機能の開発と表面化が可能になる。第2にデータを充実させることでデータに対する推論能力を向上させることができる。これは派生データの作成(決定論的アルゴリズムまたは確率論的な機械学習による方法)や、ナレッジグラフ(KG)スキーマにおけるより豊かなセマンティクスによる推論の改善によって実現できる。我々は高性能なグラフ計算と分析および開発者が会員体験をさらに向上させるKGエコシステムの構築の両方に注力する予定である。
LIquidの実装が成功したことで、LinkedIn内の他のチームやMicrosoftの姉妹チームもグラフインデックスとして採用するようになった。