config

グラフ・スキーマを構成する方法。

構文

schema.config().option(arg).[ set(value) | unset(value) | get() | exists() | describe() ]

スキーマはグラフごとにconfig()コマンドを使用して構成できます。オプションと値はset()またはunset()にできます。オプションの値はget()コマンドで取得できます。オプションが構成されたかどうかはexists()コマンドで確認できます。オプションが手動で設定された場合、describe()コマンドは値を返します。

1. グラフ固有のオプショングラフ固有のオプションはgraphが前に付きます。たとえば、 graph.schema_modeのようになります。
オプションの引数 設定例 説明 デフォルト
allow_scan true コストの高いグラフ・スキャン・クエリーを許可する設定。 true
schema_mode Production モードをProduction(プロダクション)またはDevelopment(開発)に設定します。 Development
default_property_key_cardinality multiple 特に指定しない限りデフォルトで使用するカーディナリティを設定します。 single
tx_autostart true トランザクションが自動的に開始されるか、手動で開く必要があるかどうかを設定します。 false
2. TraversalSource固有のオプションTraversalSource固有のオプションには graph.traversal_sources.*が前に付き、*は、グラフ探索gなどの指定された探索ソースでなければなりません。たとえば、 graph.traversal_sources.g.typeとなります。最も一般的なTraversalSourceが グラフ探索gです。
オプションの引数 設定例 説明 デフォルト
evaluation_timeout PT10S(10秒)または"1500 ms" 探索の評価まで待機する最大時間 - 現在のTraversalSourceに対する他のシステム・レベルの設定をオーバーライドします。 0日
restrict_lambda false このTraversalSourceでのlambdasの使用を回避します。特定の探索ソースを識別できます。 true
type read-only TraversalSourceの型を指定します。特定の探索ソースを識別できます。 default
重要: 1095日(最大の整数値)以上のタイムアウト値を設定すると、グラフ・セッションの限界を超過する可能性があります。新しいセッションを開始してタイムアウトを低い値に設定することで、ハング・セッションへのアクセスを回復できます。この注意事項は、すべてのタイムアウト(evaluation_timeout,、system_evaluation_timeout、analytic_evaluation_timeout、およびrealtime_evaluation_timeout)に適用されます。
3. トランザクション固有のオプションTransaction固有のオプションにはgraph.tx_groups.* where *は、トランザクション・グループまたはdefaultとして指定する必要があります。たとえば、graph.tx_groups.default.read_onlyは、明示的に read_onlyと呼ばれていないすべてのトランザクションを実行します。これに対し、 graph.tx_groups.myTxGroup.read_onlyは、 グループ名myTxGroupが付いたトランザクションのみに適用されます。
オプション 設定例 説明 デフォルト
authenticated_user test_user トランザクションの現在のユーザーとして使用するユーザー名。 ANONYMOUS_USER
cache false トランザクションレベル・キャッシュにあるトランザクション内のキャッシュ取得とデータ・ストアの呼び出し。この設定では、トランザクション内の分離のタイプが制限され(他のトランザクション内の変更の同時実行は表示されず、結果セットは呼び出し間で一貫性が保たれます)、より多くのメモリーを消費することによってパフォーマンスを改善できます。 true
deep_profiling true クエリーでprofile()のCQLトレーシングを有効にします。非常にコストの高いプロファイリングです。 false
internal_vertex_verify true トランザクションが、内部で指定された自動生成頂点IDに対応する頂点が実際に存在することを確認するかどうかを設定します。 false
external_vertex_verify false トランザクションが、外部で指定されたユーザー定義の頂点IDに対応する頂点が実際に存在することを確認するかどうかを設定します。 true
logged_batch true 変更を行う場合は、ログに記録されたバッチを使用します。これにより、すべてのミューテーションは最終的にパフォーマンスの低下を伴って発生することが保証されます。 false
max_mutations 5000 1回のトランザクションで追加または削除される頂点、プロパティ、およびエッジ(累積的)の最大数。 10000
max_profile_events 5 個別の探索ステップについてレポートするプロファイリング・イベントの最大数。レポートするイベントの数を制限すると、出力は管理可能になりますが、重要な情報が非表示になることがあります。 10
prefetch true クエリー・エグゼキューターが、データを要求する前に検索で予想される実行に基づいてデータを非同期でプリフェッチする必要があるかどうかを設定します。これにより、トランザクション・レイテンシーは削減されますが、スループットが悪化する場合があります。 true
read_only true トランザクションを読み取り専用にするかどうかを設定します。 false
read_consistency ALL トランザクションの読み取り操作の整合性レベルを指定します。 ONE
single_thread true トランザクションが単一スレッドのみでアクセスされるかどうかを設定します。 false
thread_bound true トランザクションを特定のスレッドに結びつけるかどうかを設定します。 false
transaction_timestamp このトランザクションのすべてのミューテーションを保持するタイムスタンプ。 Instant.EPOCH
verify_unique false 一意性制約の強制をトランザクションが確認するかどうかを指定します。 true
vertex_cache_size 4000 最近使用した頂点のトランザクションレベル・キャッシュの最大サイズ。 20000l
vertex_dirty_size これは、書き込みが多く、パフォーマンスに敏感なトランザクション・ワークロードに関するパフォーマンスのヒントです。設定した場合、トランザクションあたりで変更された頂点の平均にほぼ一致する必要があります。 32
write_consistency ANY トランザクションの書き込み操作に対する整合性レベルを指定します。 QUORUM

説明

グラフを構成します。オプションは、setunset、またはget(値を取得)です。

現在のグラフが、Development schema_modeを使用するように設定します。
schema.config().option('graph.schema_mode').set('Development')
現在のグラフが、現在別名で作成されているグラフでグラフのフルスキャンを許可するように設定します。
schema.config().option('graph.allow_scan').set('true')
restrict_lambdaFALSEに設定し、lambda関数をテストするには(プロダクション環境以外のシステムのみに適用)、次のようにします。
schema.config().option('graph.traversal_sources.g.restrict_lambda').set('FALSE')
設定されているすべての探索ソースを取得するには、探索ソース・タイプ・オプションを持つget()コマンドを使用します。
schema.config().option('graph.traversal_sources.*.type').get()
手動で設定されたオプションの値のリストになります。
REAL_TIME
リアルタイムの評価タイムアウトが設定されたことを示しています。
データ読み込み時に、ユーザー定義の頂点IDが存在することを確認するには、external_vertex_verify()オプションを次のように設定します。
schema.config().option('graph.tx_groups.default.external_vertex_verify').set('TRUE')
この設定がtrueの場合、存在しないときには頂点は返されません。ただし、external_vertex_verify()をfalseに設定すると、IDを割り当てられた頂点が存在しない場合でも、頂点が返されます。アプリケーションは、頂点がexists()メソッドを使用して存在し予想される動作を実行することを保証する必要があります。internal_vertex_verify()設定は、自動生成頂点IDでも同じ様に使用されています。
現在別名で作成されているグラフで、すべてのトランザクションのデフォルトの書き込み整合性をALLに設定します。
schema.config().option('graph.tx_groups.default.write_consistency').set('ALL')
現在別名で作成されているグラフで、すべてのトランザクションのデフォルトの書き込み整合性を取得します。
schema.config().option('graph.tx_groups.default.write_consistency').get()
オプションの設定が手動で設定されていることを確認するには、exists()コマンドを使用します。
schema.config().option('graph.tx_groups.default.write_consistency').exists()
このコマンドは次の値を返します。
true
値に設定されている場合。それ以外の場合はfalseを返します。
探索クエリーのプロファイリング中にCQLトレーシングを有効にするには、deep_profiling()オプションを次のように設定します。
schema.config().option('graph.tx_groups.default.deep_profiling').set('TRUE')
グラフを作成する時点で、スキーマの設定を設定するには、オプションをsystem.graph().create()コマンド内にチェーンします。
system.graph('food2').
  replication("{'class' : 'NetworkTopologyStrategy', 'dc1' : 3 }").  
  systemReplication("{'class' : 'NetworkTopologyStrategy', 'dc1' : 3 }").
  option("graph.default_property_key_cardinality").set("multiple").
  option("graph.schema_mode").set("Development").
  option("graph.allow_scan").set("true").
  option("graph.tx_groups.*.write_consistency").set("ALL").
  create()
すべてのトランザクション・グループの書き込み整合性を設定するために、ワイルドカード*を使用していることに注意してください。グラフ作成後、オプションを変更した場合、schema.config()コマンドを使用する必要があります。
設定された構成オプションのリストを取得するには、次のdescribe()コマンドを使用します。
:remote config alias g food2.g
schema.config().describe()
手動で設定されたオプションの値のリストになります。
==>graph.schema_mode: Development
graph.allow_scan: true
graph.tx_groups.*.write_consistency: ALL
graph.default_property_key_cardinality: Multiple

schema_modeまたはallow_scanの現在の設定値を取得するには、手動またはデフォルトで設定します。「 schema.getEffective* commands」を参照してください。

一部の構成オプションでは、デフォルトが他の構成オプションの値を使用して決められることがあります(値を明示的に設定しないなど)。たとえば、allow_scanを明示的に設定しないと、デフォルト値は、schema_modeDevelopmentに設定されている場合はtrueですが、schema_modeProductionに設定されている場合はfalseになります。これらの構成オプションはデフォルトの設定に結び付けられておらず、schema.config().get()を使用して設定値を検出すると、設定値ではなくデフォルト値が表示されるため、誤解を招く情報になるおそれがあります。

グラフのフルスキャン設定は次のようになります。
設定 スキーマ・モード 許可されたスキャン
dse.yaml schema_mode:Production Production なし
dse.yaml schema_mode:Development Development あり
graph.schema_mode:Production Production なし
graph.schema_mode:Development Development なし
graph.allow_scan:true Production あり
graph.allow_scan:true Development あり