26.8.2 リフレッシュを使用したスナップショットの作成

リフレッシュを使用してスナップショットを作成するには、次のステップを実行します。
  1. セッションを作成し、メモリーにグラフをロードします。
  2. PgxSession.getAvailableSnapshots()メソッドを使用して、グラフの使用可能なスナップショットを確認します。
    opg4j> session.getAvailableSnapshots(G)
    ==> GraphMetaData [getNumVertices()=4, getNumEdges()=4, memoryMb=0, dataSourceVersion=1453315103000, creationRequestTimestamp=1453315122669 (2016-01-20 10:38:42.669), creationTimestamp=1453315122685 (2016-01-20 10:38:42.685), vertexIdType=integer, edgeIdType=long]
    Deque<GraphMetaData> snapshots = session.getAvailableSnapshots(G);
    for( GraphMetaData metaData : snapshots ) {
      System.out.println( metaData );
    }
    snapshots = session.get_available_snapshots(G)
    for metadata in snapshots:
        print(metadata)
  3. ソース・ファイルを編集して、追加の頂点および追加のエッジを含めるか、データベースに2行挿入します。
  4. 元のグラフをロードしたセッションと同じセッション内で更新されたグラフをリロードします。新しいスナップショットが作成されます。
    opg4j> var G = session.readGraphWithProperties( G.getConfig(), true )
    ==> PGX Graph named 'sample_2' bound to PGX session 'a1744e86-65fb-4bd1-b2dc-5458b20954a9' registered at PGX Server Instance running in embedded mode
    opg4j> session.getAvailableSnapshots(G)
    ==> GraphMetaData [getNumVertices()=4, getNumEdges()=4, memoryMb=0, dataSourceVersion=1453315103000, creationRequestTimestamp=1453315122669 (2016-01-20 10:38:42.669), creationTimestamp=1453315122685 (2016-01-20 10:38:42.685), vertexIdType=integer, edgeIdType=long]
    ==> GraphMetaData [getNumVertices()=5, getNumEdges()=5, memoryMb=3, dataSourceVersion=1452083654000, creationRequestTimestamp=1453314938744 (2016-01-20 10:35:38.744), creationTimestamp=1453314938833 (2016-01-20 10:35:38.833), vertexIdType=integer, edgeIdType=long]
    G = session.readGraphWithProperties( G.getConfig(), true );
    
    Deque<GraphMetaData> snapshots = session.getAvailableSnapshots( G );
    G = session.read_graph_with_properties(G.config,update_if_not_fresh=True)
    使用可能なスナップショットのコールには2つのGraphMetaDataオブジェクトが含まれ、1つには4つの頂点と4つのエッジ、もう1つには5つの頂点と5つのエッジが含まれることに注意してください。
  5. getNumVertices()およびgetNumEdges()メソッドを使用して、グラフ変数が新しくロードされたグラフを指していることを確認します。
    opg4j> G.getNumVertices()
    ==> 5
    opg4j> G.geNumEdges()
    ==> 5
    int vertices = G.getNumVertices();
    long edges = G.getNumEdges();
    vertices = G.num_vertices
    edges = G.num_edges