ScalarDB Cluster Configurations
This document describes the configurations for ScalarDB Cluster. ScalarDB Cluster consists of multiple cluster nodes, each of which needs to be configured. The configurations need to be specified in the properties file.
Cluster configurations​
This section describes the configurations for ScalarDB Cluster.
General configurations​
The following general configurations are available for ScalarDB Cluster.
Transaction management configurations​
| Name | Description | Default |
|---|---|---|
scalar.db.transaction_manager | Transaction manager of ScalarDB. Specify consensus-commit to use Consensus Commit. | consensus-commit |
scalar.db.consensus_commit.isolation_level | Isolation level used for Consensus Commit. Either SNAPSHOT, SERIALIZABLE, or READ_COMMITTED can be specified. | SNAPSHOT |
scalar.db.consensus_commit.coordinator.namespace | Namespace name of Coordinator tables used for Consensus Commit. | coordinator |
Node configurations​
| Name | Description   | Default |
|---|---|---|
scalar.db.cluster.membership.type | Membership type. Currently, only KUBERNETES can be specified. | KUBERNETES |
scalar.db.cluster.membership.kubernetes.endpoint.namespace_name | This configuration is for the KUBERNETES membership type. Namespace name for the endpoint resource. | default |
scalar.db.cluster.membership.kubernetes.endpoint.name | This configuration is for the KUBERNETES membership type. Name of the endpoint resource to get the membership info. | |
scalar.db.cluster.node.decommissioning_duration_secs | Decommissioning duration in seconds. | 30 |
scalar.db.cluster.node.grpc.max_inbound_message_size | Maximum message size allowed to be received. | The gRPC default value |
scalar.db.cluster.node.grpc.max_inbound_metadata_size | Maximum size of metadata allowed to be received. | The gRPC default value |
scalar.db.cluster.node.port | Port number of the ScalarDB Cluster node. | 60053 |
scalar.db.cluster.node.prometheus_exporter_port | Port number of the Prometheus exporter. | 9080 |
scalar.db.cluster.grpc.deadline_duration_millis | Deadline duration for gRPC in milliseconds. | 60000 (60 seconds) |
scalar.db.cluster.node.standalone_mode.enabled | Whether standalone mode is enabled. Note that if standalone mode is enabled, the membership configurations (scalar.db.cluster.membership.*) will be ignored. | false |
Performance-related configurations​
The following performance-related configurations are available for the Consensus Commit transaction manager:
| Name | Description | Default |
|---|---|---|
scalar.db.consensus_commit.parallel_executor_count | Number of executors (threads) for parallel execution. This number refers to the total number of threads across transactions in a ScalarDB Cluster node or a ScalarDB process. | 128 |
scalar.db.consensus_commit.parallel_preparation.enabled | Whether or not the preparation phase is executed in parallel. | true |
scalar.db.consensus_commit.parallel_validation.enabled | Whether or not the validation phase (in EXTRA_READ) is executed in parallel. | The value of scalar.db.consensus_commit.parallel_commit.enabled |
scalar.db.consensus_commit.parallel_commit.enabled | Whether or not the commit phase is executed in parallel. | true |
scalar.db.consensus_commit.parallel_rollback.enabled | Whether or not the rollback phase is executed in parallel. | The value of scalar.db.consensus_commit.parallel_commit.enabled |
scalar.db.consensus_commit.async_commit.enabled | Whether or not the commit phase is executed asynchronously. | false |
scalar.db.consensus_commit.async_rollback.enabled | Whether or not the rollback phase is executed asynchronously. | The value of scalar.db.consensus_commit.async_commit.enabled |
scalar.db.consensus_commit.parallel_implicit_pre_read.enabled | Whether or not implicit pre-read is executed in parallel. | true |