Asynchronous commit modes for synchronous transactions
Nobody has claimed this yet.
- Dominant language
- CSS
- Stars
- 15
- Forks
- 49
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 3
Description
Product: Tarantool
Since: 3.3
Root document: https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_txn_management/commit/
and https://www.tarantool.io/ru/doc/latest/reference/reference_lua/box_txn_management/atomic/
and https://www.tarantool.io/en/doc/latest/platform/replication/repl_sync/
Some users may want to overcome the throughput limitation of synchronous
transactions and commit them using asynchronous wait modes (2c66624). This
will allow them to get the same consistency guarantees with
read-confirmed and linearizable isolation levels without paying the
throughput penalty. Changes committed this way will be visible with the
read-committed isolation level.
Asynchronously committed synchronous transactions will not get rolled back
because of replication_synchronous_timeout, and subsequent synchronously
committed transactions will not rollback their asynchronously committed
predecessors on timeout.
Requested by @CuriousGeorgiy in https://github.com/tarantool/tarantool/commit/2a401a6ad9db5f3708a4fd91bd80e098eec4d6b9.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the three linked root documents for commit, atomic transactions, and synchronous replication, then read the referenced commit 2c66624 and request commit 2a401a6. Document the asynchronous wait modes, their isolation and visibility guarantees, and timeout behavior across the relevant pages; done means the documented behavior matches the requested semantics.
Written by the indexing model from the issue text.
Assessment
- Domain
- databases, distributed-systems, documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100