辺およびプロパティのキャッシング

辺およびプロパティのグラフ・キャッシングを構成する方法。

キャッシングはクエリー・パフォーマンスを向上させることができ、構成が可能です。DSEグラフのキャッシュには、隣接リスト・キャッシュとインデックス/プロパティ・キャッシュの2種類があります。辺またはプロパティのどちらかをキャッシングするには、スキーマAPI vertexLabel()メソッドをcache()オプションと一緒に使用します。キャッシングはすべての辺、すべてのプロパティ、または辺のフィルター済みセットに対して構成できます。頂点は直接キャッシングできません。ただし、頂点間の関係を定義するキャッシング・プロパティおよび辺が、実質的に同じ操作を実行します。

インデックスが存在し、クエリーの過程で使用されている場合、プロパティ・キャッシングは有効です。フル・グラフ・スキャン・クエリーはキャッシングされません。インデックスが存在しない場合、キャッシングは発生しません。辺についてキャッシングが構成されている場合、隣接リスト・キャッシングは有効です。

キャッシュはノードにローカルであり、データはクエリーで読み取られたときにキャッシュに読み込まれます。両方のキャッシュはdse.yamlファイルで、デフォルト・サイズの128 MBに設定されています。設定はadjacency_cache_size_in_mbおよびindex_cache_size_in_mbです。両方のキャッシュは、Least Recently Used(LRU)キャッシュとして実装されているオフヒープ・メモリーを利用します。

キャッシングは、同じ情報が後のクエリーで必要となった場合に、より効率的にクエリーを実行するためのものです。たとえば、meal(食事)頂点のcalories(カロリー)プロパティのキャッシングを行うと、all meals with a calorie count less than 850 calories(850カロリー未満のすべての食事)を要求するクエリーの取得が改善されます。

グラフ・キャッシングには、破棄の方法がありません。フラッシュは発生しません。さらに、要素が削除または変更されても、キャッシュは更新されません。キャッシュは、要素についてキャッシュが構成されたときに設定されるTime To Live(TTL)値のみに基づいてデータを排除します。データが古くなることを回避するために、頻繁に変化する要素には低いTTL値を設定します。

dse.yamlファイルの場所は、インストールのタイプによって異なります。
Installer-Services /etc/dse/dse.yaml
パッケージ・インストール /etc/dse/dse.yaml
Installer-No Services install_location/resources/dse/conf/dse.yaml
tarボール・インストール install_location/resources/dse/conf/dse.yaml

手順

  • author頂点のすべてのプロパティを最大1時間(3600秒)キャッシュします。
    schema.vertexLabel('author').cache().properties().ttl(3600).add()

    プロパティ・キャッシュを有効にすると、インデックス・クエリーでは、指定された頂点ラベルのIndexCacheを使用します。

  • author頂点の内向きと外向きの両方のcreated辺を最大1分(60秒)間キャッシュします。
    schema.vertexLabel('author').cache().bothE('created').ttl(00).add()
  • 特定のedgeLabelに基づいてvertexLabelのパーティション分割を行います。
    schema.vertexLabel('author').partition().inE('created').add()