Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Metric                                Type        Description
share-transaction-active              Gauge       Active transactions
share-transaction-prepare-time-ms     Histogram   Prepare latency
share-transaction-commit-time-ms      Histogram   Commit latency
share-transaction-abort-total         Counter     Aborted transactions
share-transaction-timeout-total       Counter     Timed-out transactions

Proposed Changes

1.

...

Introduce a new `LOCKED` state for records within a transaction:

Record State Machine:

AVAILABLE --[poll()]--> ACQUIRED
ACQUIRED --[txn.acknowledge()]--> LOCKED
ACQUIRED --[acquisitionLockTimeout, no txn]--> AVAILABLE
LOCKED --[commit()]--> ACKNOWLEDGED (removed)
LOCKED --[abort() or timeout]--> AVAILABLE (retry)

Key: `LOCKED` state is governed by **transaction timeout**, not acquisition lock.

...

Two-Phase Commit Protocol

Transaction States Transitions

...

Share acks are written transactionally to __share_group_state using CoordinatorRuntime.scheduleTransactionalWriteOperation().

Failure Handling

existing TransactionCoordinator recovery

...

2. Wire Protocol Details

TxnShareAcknowledgeRequest

...