config
グラフ・スキーマを構成する方法。
構文
schema.config().option(arg).[ set(value) | unset(value) | get() | exists() | describe() ]
スキーマはグラフごとにconfig()
コマンドを使用して構成できます。オプションと値はset()
またはunset()
にできます。オプションの値はget()
コマンドで取得できます。オプションが構成されたかどうかはexists()
コマンドで確認できます。オプションが手動で設定された場合、describe()
コマンドは値を返します。
オプションの引数 | 設定例 | 説明 | デフォルト |
---|---|---|---|
allow_scan | true | コストの高いグラフ・スキャン・クエリーを許可する設定。 | true |
schema_mode | 実稼働 | モードをProduction(実稼動)またはDevelopment(開発)に設定します。 | 開発 |
default_property_key_cardinality | multiple | 特に指定しない限りデフォルトで使用するカーディナリティを設定します。 | single |
tx_autostart | true | トランザクションが自動的に開始されるか、手動で開く必要があるかどうかを設定します。 | false |
オプションの引数 | 設定例 | 説明 | デフォルト |
---|---|---|---|
evaluation_timeout | PT10S(10秒)または"1500 ms" | 探索の評価まで待機する最大時間 - 現在のTraversalSourceに対する他のシステム・レベルの設定をオーバーライドします。 | 0日 |
restrict_lambda | false | このTraversalSourceでのlambdasの使用を回避します。特定の探索ソースを識別できます。 | true |
type | read-only | TraversalSourceの型を指定します。特定の探索ソースを識別できます。 | default |
オプション | 設定例 | 説明 | デフォルト |
---|---|---|---|
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 |
説明
グラフを構成します。オプションは、set
、unset
、または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_mode
がDevelopment
に設定されている場合はtrue
ですが、schema_mode
がProduction
に設定されている場合はfalse
になります。これらの構成オプションはデフォルトの設定に結び付けられておらず、schema.config().get()
を使用して設定値を検出すると、設定値ではなくデフォルト値が表示されるため、誤解を招く情報になるおそれがあります。
restrict_lambda
をFALSE
に設定し、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 | 開発 | 予約 |