ScalarDB Core Configurations
This page describes the available configurations for ScalarDB Core.
tip
If you are using ScalarDB Cluster, please refer to ScalarDB Cluster Configurations instead.
General configurationsβ
The following configurations are available for the Consensus Commit transaction manager.
transaction_managerβ
- Field:
scalar.db.transaction_manager - Description: Transaction manager of ScalarDB. Specify
consensus-committo use Consensus Commit orsingle-crud-operationto run non-transactional storage operations. Note that the configurations under thescalar.db.consensus_commitprefix are ignored if you usesingle-crud-operation. - Default value:
consensus-commit
isolation_levelβ
- Field:
scalar.db.consensus_commit.isolation_level - Description: Isolation level used for Consensus Commit. Either
SNAPSHOT,SERIALIZABLE, orREAD_COMMITTEDcan be specified. - Default value:
SNAPSHOT
coordinator.namespaceβ
- Field:
scalar.db.consensus_commit.coordinator.namespace - Description: Namespace name of Coordinator tables used for Consensus Commit.
- Default value:
coordinator
Performance-related configurationsβ
The following performance-related configurations are available for the Consensus Commit transaction manager.
parallel_executor_countβ
- Field:
scalar.db.consensus_commit.parallel_executor_count - Description: 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 Core process.
- Default value:
128
parallel_preparation.enabledβ
- Field:
scalar.db.consensus_commit.parallel_preparation.enabled - Description: Whether or not the preparation phase is executed in parallel.
- Default value:
true
parallel_validation.enabledβ
- Field:
scalar.db.consensus_commit.parallel_validation.enabled - Description: Whether or not the validation phase (in
EXTRA_READ) is executed in parallel. - Default value: The value of
scalar.db.consensus_commit.parallel_commit.enabled
parallel_commit.enabledβ
- Field:
scalar.db.consensus_commit.parallel_commit.enabled - Description: Whether or not the commit phase is executed in parallel.
- Default value:
true
parallel_rollback.enabledβ
- Field:
scalar.db.consensus_commit.parallel_rollback.enabled - Description: Whether or not the rollback phase is executed in parallel.
- Default value: The value of
scalar.db.consensus_commit.parallel_commit.enabled
async_commit.enabledβ
- Field:
scalar.db.consensus_commit.async_commit.enabled - Description: Whether or not the commit phase is executed asynchronously.
- Default value:
false
async_rollback.enabledβ
- Field:
scalar.db.consensus_commit.async_rollback.enabled - Description: Whether or not the rollback phase is executed asynchronously.
- Default value: The value of
scalar.db.consensus_commit.async_commit.enabled
parallel_implicit_pre_read.enabledβ
- Field:
scalar.db.consensus_commit.parallel_implicit_pre_read.enabled - Description: Whether or not implicit pre-read is executed in parallel.
- Default value:
true
one_phase_commit.enabledβ
- Field:
scalar.db.consensus_commit.one_phase_commit.enabled - Description: Whether or not the one-phase commit optimization is enabled.
- Default value:
false
coordinator.write_omission_on_read_only.enabledβ
- Field:
scalar.db.consensus_commit.coordinator.write_omission_on_read_only.enabled - Description: Whether or not the Coordinator write omission optimization is enabled for read-only transactions. This optimization is useful for read-only transactions that do not modify any data, as it avoids unnecessary writes to the Coordinator tables.
- Default value:
true
coordinator.group_commit.enabledβ
- Field:
scalar.db.consensus_commit.coordinator.group_commit.enabled - Description: Whether or not committing the transaction state is executed in batch mode. This feature can't be used with a two-phase commit interface.
- Default value:
false
coordinator.group_commit.slot_capacityβ
- Field:
scalar.db.consensus_commit.coordinator.group_commit.slot_capacity - Description: Maximum number of slots in a group for the group commit feature. A large value improves the efficiency of group commit, but may also increase latency and the likelihood of transaction conflicts.[^1]
- Default value:
20