ScalarDB Cluster の設定
注記
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このドキュメントでは、ScalarDB Cluster の設定について説明します。ScalarDB Cluster は複数のクラスターノードで構成されており、各クラスターノードを設定する必要があります。設定はプロパティファイルで指定する必要があります。
クラスター設定
このセクションでは、ScalarDB Cluster の設定について説明します。
一般的な設定
ScalarDB Cluster では、次の一般的な設定が利用可能です。
トランザクション管理設定
transaction_manager
- フィールド:
scalar.db.transaction_manager - 説明: ScalarDB のトランザクションマネージャー。Consensus Commit を使用するには
consensus-commitを指定し、非トランザクションストレージ操作を実行する にはsingle-crud-operationを指定します。single-crud-operationを使用する場合、scalar.db.consensus_commitプレフィックスの下の設定は無視されることに注意してください。 - デフォルト値:
consensus-commit
isolation_level
- フィールド:
scalar.db.consensus_commit.isolation_level - 説明: Consensus Commit に使用される分離レベル。
SNAPSHOT、SERIALIZABLEまたはREAD_COMMITTEDのいずれかを指定できます。 - デフォルト値:
SNAPSHOT
coordinator.namespace
- フィールド:
scalar.db.consensus_commit.coordinator.namespace - 説明: Consensus Commit に使用される Coordinator テーブルの名前空間名。
- デフォルト値:
coordinator
ノード設定
cluster.membership.type
- フィールド:
scalar.db.cluster.membership.type - 説明: メンバーシップの種類。現在、
KUBERNETESのみ指定で きます。 - デフォルト値:
KUBERNETES
cluster.membership.kubernetes.endpoint.namespace_name
- フィールド:
scalar.db.cluster.membership.kubernetes.endpoint.namespace_name - 説明: この設定は、
KUBERNETESメンバーシップタイプ用です。endpoint resource の名前空間名。 - デフォルト値:
default
cluster.membership.kubernetes.endpoint.name
- フィールド:
scalar.db.cluster.membership.kubernetes.endpoint.name - 説明: この設定は、
KUBERNETESメンバーシップタイプ用です。メンバーシップ情報を取得するための endpoint resource の名前。 - デフォルト値: empty
cluster.node.decommissioning_duration_secs
- フィールド:
scalar.db.cluster.node.decommissioning_duration_secs - 説明: ScalarDB Cluster ノード終了時に実際に廃止されるまでの期間 (秒単位)。
- デフォルト値:
30
cluster.node.grpc.max_inbound_message_size
- フィールド:
scalar.db.cluster.node.grpc.max_inbound_message_size - 説明: 受信可能な最大メッセージサイズ。
- デフォルト値: gRPCのデフォルト値
cluster.node.grpc.max_inbound_metadata_size
- フィールド:
scalar.db.cluster.node.grpc.max_inbound_metadata_size - 説明: 受信できるメタデータの最大サイズ。
- デフォルト値: gRPC のデフォルト値
cluster.node.port
- フィールド:
scalar.db.cluster.node.port - 説明: ScalarDB Cluster ノードのポート番号。
- デフォルト値:
60053
cluster.node.prometheus_exporter_port
- フィールド:
scalar.db.cluster.node.prometheus_exporter_port - 説明: Prometheus エクスポーターのポート番号。
- デフォルト値:
9080
cluster.grpc.deadline_duration_millis
- フィールド:
scalar.db.cluster.grpc.deadline_duration_millis - 説明: gRPC の期限期間 (ミリ秒単位)。
- デフォルト値:
60000(60秒)
cluster.node.standalone_mode.enabled
- フィールド:
scalar.db.cluster.node.standalone_mode.enabled - 説明: スタンドアロンモードが有効かどうか。スタンドアロンモードが有効になっている場合、メンバーシップ設定 (
scalar.db.cluster.membership.*) は無視されることに注意してください。 - デフォルト値:
false
transaction.enabled
- フィールド:
scalar.db.transaction.enabled - 説明: トランザクション機能が有効かどうか。たとえば、埋め込み機能のみを使用する場合は、このプロパティを
falseに設定できます。 - デフォルト値:
true
cluster.node.scanner_management.expiration_time_millis
- フィールド:
scalar.db.cluster.node.scanner_management.expiration_time_millis - 説明: ScalarDB Cluster ノードは 進行中のスキャナーを管理しています。このプロセスは、リソースリークを防ぐために、長時間アイドル状態のスキャナーを期限切れにします。この設定では、このスキャナー管理機能の有効期限をミリ秒単位で指定します。
- デフォルト値:
60000(60秒)
パフォーマンス関連の設定
Consensus Commit トランザクションマネージャーでは、次のパフォーマンス関連の設定が利用できます。
parallel_executor_count
- フィールド:
scalar.db.consensus_commit.parallel_executor_count - 説明: 並列実行のためのエグゼキュータ (スレッド) の数。この数値は、ScalarDB Cluster ノード内または ScalarDB Core プロセス内のトランザクション全体のスレッド数の合計を示します。
- デフォルト値:
128
parallel_preparation.enabled
- フィールド:
scalar.db.consensus_commit.parallel_preparation.enabled - 説明: 準備フェーズが並行して実行されるかどうか。
- デフォルト値:
true
parallel_validation.enabled
- フィールド:
scalar.db.consensus_commit.parallel_validation.enabled - 説明: 検証フェーズ (
EXTRA_READ内) が並列で実行されるかどうか。 - デフォルト値:
scalar.db.consensus_commit.parallel_commit.enabledの値
parallel_commit.enabled
- フィールド:
scalar.db.consensus_commit.parallel_commit.enabled - 説明: コミットフェーズが並列で実行されるかどうか。
- デフォルト値:
true
parallel_rollback.enabled
- フィールド:
scalar.db.consensus_commit.parallel_rollback.enabled - 説明: ロールバックフェーズが並列で実行されるかどうか。
- デフォルト値:
scalar.db.consensus_commit.parallel_commit.enabledの値
async_commit.enabled
- フィールド:
scalar.db.consensus_commit.async_commit.enabled - 説明: コミットフェーズが非同期で実行されるかどうか。
- デフォルト値:
false
async_rollback.enabled
- フィールド:
scalar.db.consensus_commit.async_rollback.enabled - 説明: ロールバックフェーズが非同期に実行されるかどうか。
- デフォルト値:
scalar.db.consensus_commit.async_commit.enabledの値
parallel_implicit_pre_read.enabled
- フィールド:
scalar.db.consensus_commit.parallel_implicit_pre_read.enabled - 説明: 暗黙 的な事前読み取りが並列で実行されるかどうか。
- デフォルト値:
true
one_phase_commit.enabled
- フィールド:
scalar.db.consensus_commit.one_phase_commit.enabled - 説明: 1フェーズコミット最適化が有効かどうか。
- デフォルト値:
false
coordinator.write_omission_on_read_only.enabled
- フィールド:
scalar.db.consensus_commit.coordinator.write_omission_on_read_only.enabled - 説明: 読み取り専用トランザクションに対して Coordinator テーブルへの書き込み省略最適化を有効にするかどうか。この最適化は、データを変更しない読み取り専用トランザクションに有効であり、Coordinator テーブルへの不要な書き込みを回避します。
- デフォルト値:
true
coordinator.group_commit.enabled
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.enabled - 説明: トランザクション状態のコミットがバッチモードで実行されるかどうか。この機能は、2フェーズコミットインターフェイスでは使用できません。
- デフォルト値:
false
coordinator.group_commit.slot_capacity
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.slot_capacity - 説明: グループコミット機能のグループ内のスロットの最大数。値が大きいとグループコミットの効率は向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。1
- デフォルト値:
20
coordinator.group_commit.group_size_fix_timeout_millis
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.group_size_fix_timeout_millis - 説明: グループ内のスロットのサイズを固定するためのタイムアウト。値が大きいとグループコミットの効率が向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。1
- デフォルト値:
40
coordinator.group_commit.delayed_slot_move_timeout_millis
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.delayed_slot_move_timeout_millis - 説明: 遅延スロットをグループから別の分離グループに移動して、元のグループが遅延トランザクションの影響を受けないようにするためのタイムアウト。値が大きいとグループコミットの効率が向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。1
- デフォルト値:
1200
coordinator.group_commit.old_group_abort_timeout_millis
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.old_group_abort_timeout_millis - 説明: 進行中の古いグループをアボートするためのタイムアウト。値が小さいと、積極的なアボートによってリソースの消費量が減りますが、長時間実行されるトランザクションで不要なアボートが発生する可能性も高くなります。
- デフォルト値:
60000
coordinator.group_commit.timeout_check_interval_millis
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.timeout_check_interval_millis - 説明: グループコミット関連のタイムアウトをチェックする間隔。
- デフォルト値:
20
coordinator.group_commit.metrics_monitor_log_enabled
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.metrics_monitor_log_enabled - 説明: グループコミットのメトリックが定期的にログに記録されるかどうか。
- デフォルト値:
false
ストレージ関連の設定
ScalarDB には、複数のストレージ実装をサポートするストレージ (データベース) 抽象化レイヤーがあります。scalar.db.storage プロパティを使用してストレージ実装を指定できます。
注記
複数のストレージの使用の詳細については、マルチストレージ設定を参照してください。
データベースを選択して、各ストレージで使用可能な設定を確認します。
- JDBC databases
- DynamoDB
- Cosmos DB for NoSQL
- Cassandra
JDBC データベースでは次の設定を使用できます。
storage
- フィールド:
scalar.db.storage - 説明:
jdbcを指定する必要があります。 - デフォルト値: -
contact_points
- フィールド:
scalar.db.contact_points - 説明: JDBC 接続 URL。
- デフォルト値:
username
- フィールド:
scalar.db.username - 説明: データベースにアクセスするためのユーザー名。
- デフォルト値:
password
- フィールド:
scalar.db.password - 説明: データベースにアクセスするためのパスワード。
- デフォルト値:
jdbc.connection_pool.min_idle
- フィールド:
scalar.db.jdbc.connection_pool.min_idle - 説明: コネクションプール内のアイドルコネクションの最小数。
- デフォルト値:
20
jdbc.connection_pool.max_idle
- フィールド:
scalar.db.jdbc.connection_pool.max_idle - 説明: コネクションプール内でアイドル状態のままにできるコネクションの最大数。
- デフォルト値:
50
jdbc.connection_pool.max_total
- フィールド:
scalar.db.jdbc.connection_pool.max_total - 説明: コネクションプールで同時にアクティブにできるアイドルコネクションと利用中コネクションの最大合計数。制限がない場合は負の値を使用します。
- デフォルト値:
200
jdbc.prepared_statements_pool.enabled
- フィールド:
scalar.db.jdbc.prepared_statements_pool.enabled - 説明: このプロパティを
trueに設定すると、準備されたステートメントのプールが有効になります。 - デフォルト値:
false
jdbc.prepared_statements_pool.max_open
- フィールド:
scalar.db.jdbc.prepared_statements_pool.max_open - 説明: ステートメントプールから同時に割り当てることができるオープンステートメントの最大数。制限がない場合は負の値を使用します。
- デフォルト値:
-1
jdbc.isolation_level
- フィールド:
scalar.db.jdbc.isolation_level - 説明: JDBC の分離レベル。
READ_COMMITTED、REPEATABLE_READ、またはSERIALIZABLEを指定できます。 - デフォルト値: 基盤データベース固有
jdbc.table_metadata.connection_pool.min_idle
- フィールド:
scalar.db.jdbc.table_metadata.connection_pool.min_idle - 説明: テーブルメタデータのコネクションプール内のアイドルコネクションの最小数。
- デフォルト値:
5
jdbc.table_metadata.connection_pool.max_idle
- フィールド:
scalar.db.jdbc.table_metadata.connection_pool.max_idle - 説明: テーブルメタデータのコネクションプール内でアイドル状態のままにできるコネクションの最大数。
- デフォルト値:
10
jdbc.table_metadata.connection_pool.max_total
- フィールド:
scalar.db.jdbc.table_metadata.connection_pool.max_total - 説明: テーブルメタデータのコネクションプールで同時にアクティブにできるアイドルコネクションと利用中コネクションの最大合計数。制限がない場合は負の値を使用します。
- デフォルト値:
25