4.1.1 インメモリー・グラフ・サーバー(PGX)の設計

インメモリー・グラフ・サーバー(PGX)の設計は、サーバークライアント使用モデルに基づいています。様々なグラフ・サーバー(PGX)実行モードの詳細は、インメモリー・グラフ・サーバー(PGX)の使用モードを参照してください。

次の図は、グラフ・サーバー(PGX)の設計を示しています。

図4-1 グラフ・サーバー(PGX)の設計

図4-1の説明が続きます
「図4-1 グラフ・サーバー(PGX)の設計」の説明

グラフ・サーバー(PGX)設計の中核概念は次のとおりです:

  • インメモリー・グラフ・サーバーには、複数のグラフ・クライアントが同時に接続できます。
  • それぞれのクライアント・リクエストが、グラフ・サーバーによって非同期に処理されます。クライアント・リクエストは最初にキューに入れられ、リソースが使用可能になると後で処理されます。クライアントはサーバーをポーリングして、リクエストが終了したかどうかを確認できます。
  • 内部的には、サーバーはパラレル・グラフ・アルゴリズムと問合せを実行するための独自のエンジン(スレッド・プール)を保持しています。エンジンは、各分析リクエストをできるだけ多くのスレッドと同時に処理しようとします。

同時クライアント間の分離

グラフ・サーバー(PGX)は、同時クライアント間のデータ分離をサポートします。各クライアントには、セッションと呼ばれる独自のプライベート・ワークスペースがあります。セッションは相互に分離されています。各クライアントは、他のクライアントから独立して、グラフ・インスタンスを独自のセッションにロードできます。

複数のクライアントが同じグラフ・インスタンスをロードする場合、グラフ・サーバーはフード下の複数のクライアント間で1つのグラフ・インスタンスを共有できます。各クライアントは、独自のセッションのロードされたグラフに頂点またはエッジ・プロパティを追加できます。次の図で示すように、このようなプロパティは一時プロパティであり、各セッションに対してプライベートで、別のセッションからは参照できません。

図4-2 セッションおよび一時プロパティ

図4-2の説明が続きます
「図4-2 セッションおよび一時プロパティ」の説明

同様に、クライアントがグラフの変更バージョンを作成すると、グラフ・サーバーはそのクライアントのプライベート・グラフ・インスタンスを作成します。