Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions docs/api-guide.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand All @@ -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.

Expand All @@ -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.

Expand Down