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(実稼動)または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
3. Transaction固有のオプションTransaction固有のオプションにはgraph.tx_groups.*が前に付き、*は、トランザクション・グループまたはdefaultとして指定する必要があります。たとえば、graph.tx_groups.default.read_onlyは、明示的にread_onlyと呼ばれていないすべてのトランザクションを実行します。これに対し、graph.tx_groups.myTxGroup.read_onlyは、グループ名myTxGroupが付いたトランザクションのみに適用されます。
オプション 設定例 説明 デフォルト
authenticated_user test_user トランザクションの現在のユーザーとして使用するユーザー名。 ANONYMOUS_USER
cache true トランザクションレベル・キャッシュにあるトランザクション内のキャッシュ取得とデータ・ストアの呼び出し。この設定では、トランザクション内の分離のタイプが制限され(他のトランザクション内の変更の同時実行は表示されず、結果セットは呼び出し間で一貫性が保たれます)、より多くのメモリーを消費することによってパフォーマンスを改善できます。 true
deep_profiling true クエリーでprofile()のCQLトレーシングを有効にします。非常にコストの高いプロファイリングです。 false
internal_vertex_verify true トランザクションが、内部で指定された頂点ID(autogenerated vertex ids)に対応する頂点が実際に存在することを確認するかどうかを設定します。 false
external_vertex_verify false トランザクションが、外部で指定された頂点ID(custom vertex ids)に対応する頂点が実際に存在することを確認するかどうかを設定します。 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(値を取得)です。

現在のグラフが、現在別名で作成されているグラフでグラフのフルスキャンを不許可にするように設定します。
schema.config().option('graph.allow_scan').set('false')
設定されているすべての探索ソースを取得するには、探索ソース・タイプ・オプションを持つget()コマンドを使用します。
schema.config().option('graph.traversal_sources.*.type').get()
手動で設定されたオプションの値のリストになります。
REAL_TIME
現在別名で作成されているグラフでトランザクションのデフォルトの書き込み整合性を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')
外部の頂点IDが存在することを確認するには、external_vertex_verify()オプションを次のように設定します。
schema.config().option('graph.tx_groups.default.external_vertex_verify').set('TRUE')
この設定がtrueの場合、存在しないときには頂点は返されません。ただし、external_vertex_verify()をfalseに設定すると、IDを割り当てられた頂点が存在しない場合でも、頂点が返されます。アプリケーションは、頂点がexists()メソッドを使用して存在し予想される動作を実行することを保証する必要があります。
設定された構成オプションのリストを取得するには、次のdescribe()コマンドを使用します。
schema.config().describe()
手動で設定されたオプションの値のリストになります。
graph.tx_groups.default.write_consistency: ALL
graph.allow_scan: False

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

restrict_lambdaFALSEに設定し、lambda関数をテストするには(実稼働環境以外のシステムのみに適用)、次のようにします。
schema.config().option('graph.traversal_sources.g.restrict_lambda').set('FALSE')
グラフのフルスキャン設定は次のようになります。
設定 スキーマ・モード 許可されたスキャン
dse.yaml schema_mode:Production 実稼働 未予約
dse.yaml schema_mode:Development 開発 予約
graph.schema_mode:Production 実稼働 未予約
graph.schema_mode:Development 開発 未予約
graph.allow_scan:true 実稼働 予約
graph.allow_scan:true 開発 予約