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.id
- フィールド:
scalar.db.cluster.id - 説明: ScalarDB Cluster の ID。クラスターを識別する必要がある機能で使用されるため、ScalarDB Cluster 間で一意の値を指定してください。たとえば、このプロパティは
scalar.db.cluster.node.transaction_participant.enabledがtrueに設定されている場合に必要です。その場合、この値は Transaction Coordinator のscalar.db.cluster.transaction_coordinator.clustersプロパティに記載されている値、およびこのクラスターに属するアプリケーションのscalar.db.cluster.idプロパティで指定された値と同じである必要があります。 - デフォルト値: empty
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.internal.node.port
- フィールド:
scalar.db.cluster.internal.node.port - 説明: ScalarDB Cluster ノード間の内部通信に使用される gRPC サーバーのポート番号。
- デフォルト値:
60054
cluster.node.admin.port
- フィールド:
scalar.db.cluster.node.admin.port - 説明: ScalarDB Cluster ノードの管理 gRPC サーバーのポート番号。このプロパティが設定されている場合、管理者サービス (
pause、unpause、checkPaused) は、管理操作を他の gRPC トラフィックから分離するのに役立つ、このポートの専用 gRPC サーバーで実行されます。このプロパティが設定されていない場合、管理者サービスは他の gRPC サービス (scalar.db.cluster.node.port) と同じポートで実行されます。 - デフォルト値: empty (
scalar.db.cluster.node.portを使用)
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
cluster.node.transaction_participant.enabled
- フィールド:
scalar.db.cluster.node.transaction_participant.enabled - 説明: ScalarDB Cluster ノードが Transaction Coordinator の主導するトランザクションの参加者として機能するかどうか。このプロパティを
trueに設定する場合は、scalar.db.cluster.idも設定する必要があります。Transaction Coordinator の詳細については、Transaction Coordinator の設定を参照してください。 - デフォルト値:
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秒)
cluster.node.grpc.max_connection_age_millis
- フィールド:
scalar.db.cluster.node.grpc.max_connection_age_millis - 説明: チャネルが存在できる最大時間。古いコネクションをプロアクティブに閉じて更新し、サーバー間の不均衡を防ぐのに役立ちます。
- デフォルト値:
Integer.MAX_VALUE(無制限)
cluster.node.grpc.max_connection_age_grace_millis
- フィールド:
scalar.db.cluster.node.grpc.max_connection_age_grace_millis - 説明: チャネルが最大期間に到達した後の猶予期間。コネクションが閉じられる前に、進行中の RPC が完了するための猶予期間を提供します。
- デフォルト値:
Integer.MAX_VALUE(無制限)
パフォーマンス関連の設定
Consensus Commit トランザクションマネージャーでは、次のパフォーマンス関連の設定が利用できます。
parallel_executor_count
- フィールド:
scalar.db.consensus_commit.parallel_executor_count - 説明: 並列実行のためのエグゼキュータ (スレッド) の数。この数値は、ScalarDB Cluster ノード内または ScalarDB Core プロセス内のトランザクション全体のスレッド数の合計を示します。
- デフォルト値:
128