diff --git a/docs/api-guide.mdx b/docs/api-guide.mdx index f57172cc..5cc5d3be 100644 --- a/docs/api-guide.mdx +++ b/docs/api-guide.mdx @@ -1539,7 +1539,7 @@ In the sample code, the transaction is retried three times maximum and sleeps fo ::: -### Group commit for the Coordinator table +## Group commit for the Coordinator table The Coordinator table that is used for Consensus Commit transactions is a vital data store, and using robust storage for it is recommended. However, utilizing more robust storage options, such as internally leveraging multi-AZ or multi-region replication, may lead to increased latency when writing records to the storage, resulting in poor throughput performance. @@ -1559,11 +1559,11 @@ scalar.db.consensus_commit.coordinator.group_commit.enabled=true # scalar.db.consensus_commit.coordinator.group_commit.metrics_monitor_log_enabled=true ``` -#### Limitations +### Limitations This section describes the limitations of the group commit feature. -##### Custom transaction ID passed by users +#### Custom transaction ID passed by users The group commit feature implicitly generates an internal value and uses it as a part of transaction ID. Therefore, a custom transaction ID manually passed by users via `com.scalar.db.transaction.consensuscommit.ConsensusCommitManager.begin(String txId)` or `com.scalar.db.transaction.consensuscommit.TwoPhaseConsensusCommitManager.begin(String txId)` can't be used as is for later API calls. You need to use a transaction ID returned from`com.scalar.db.transaction.consensuscommit.ConsensusCommit.getId()` or `com.scalar.db.transaction.consensuscommit.TwoPhaseConsensusCommit.getId()` instead. @@ -1582,7 +1582,7 @@ The group commit feature implicitly generates an internal value and uses it as a logger.info("The transaction state: {}", manager.getState(transaction.getId())); ``` -##### Prohibition of use with a two-phase commit interface +#### Prohibition of use with a two-phase commit interface The group commit feature manages all ongoing transactions in memory. If this feature is enabled with a two-phase commit interface, the information must be solely maintained by the coordinator service to prevent conflicts caused by participant services' inconsistent writes to the Coordinator table, which may contain different transaction distributions over groups.