13.3 事前ロード済グラフの公開

事前ロード済グラフの公開動作は、構成で制御できます。別の動作が構成されていないかぎり、グラフの最初にロードされたスナップショット(のみ)が公開されます。事前ロードされた公開済グラフは、どのセッションでも使用されない場合もメモリー内に残ります。

公開動作を制御するには、次の2つのオプションがあります。

  • グラフのみを公開し、グラフの将来のスナップショットを公開しない場合は、オプションのフラグpublishtrueに設定します。このフラグのデフォルト値はtrueであるため、これがデフォルトの動作です。
  • グラフおよびグラフの将来のスナップショットすべてを公開する場合は、オプションのフラグpublish_with_snapshotstrueに設定します。デフォルト値はfalseです。

この2つのフラグのうち、一度に一方のみをtrueに設定できます。ただし、グラフをスナップショットとともに公開すると、グラフの最初のバージョンも公開されます。

例13-2 グラフを事前ロードするためのサンプル構成ファイル

この例のpgx.confでは、グラフ・サーバー(PGX)の起動中にメモリーにロードする2つのグラフが指定されています。my-graphはスナップショットとともに公開され、my-other-graphはスナップショットなしで公開されます。

{ 
  "enterprise_scheduler_config": {
    "analysis_task_config": {
      "max_threads": 32
    }
  },
  "preload_graphs": [
    {
      "path": "graph-configs/my-graph.bin.json",
      "name": "my-graph",
      "publish": false,
      "publish_with_snapshots": true
    },
    {
      "path": "graph-configs/my-other-graph.adj.json",
      "name": "my-other-graph"      
    }
  ],
  "authorization": [{
    "pgx_role": "GRAPH_DEVELOPER",
    "pgx_permissions": [{
      "preloaded_graph": "my-graph",
      "grant": "read"
    },
    {
      "preloaded_graph": "my-other-graph",
      "grant": "read"
    }]
  },	
	....
  ]
}

この2つの事前ロード済グラフには、次のようにアクセスできます。

PgxGraph g1 = session.getGraph("my-graph"); //returns the most recent available snapshot
PgxGraph g2 = session.getGraph("my-other-graph");