tarantool / tarantool/doc

new `replication.linearizable_quorum` option

Open
#5,551 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
CSS
Stars
15
Forks
49
Avg merge
1d 13h
Merged PRs (30d)
3

Description

A number of replicas to synchronize with before performing linearizable
transaction.

Linearizable transactions guarantee that if a write operation completes
before a read operation begins, then this read will always observe the
effects of that write. To ensure this, the node executing a linearizable
transaction must obtain information from enough remote peers to
determine the most up-to-date state of the replica set. That number of
peers can be configured with this option.

By default, the linearizable quorum is evaluated dynamically as
N - Q + 1, where: N – the current number of registered replicas in
the replica set, Q – the current value of replication.synchro_quorum.

This default guarantees quorum intersection between synchronous writes and
linearizable reads (R + Q = N + 1), which is a fundamental requirement
for linearizability.

Note:
To begin a linearizable transaction, the MVCC must be enabled and
txn_isolation must be set to linearizable, the transaction can only
perform requests to synchronous, local or temporary spaces.
Requested by @Serpentian in https://github.com/tarantool/tarantool/commit/123e40fde3c2eb0ab9e07005426f1147428f2f95.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Use the referenced commit as the starting point for understanding the new replication.linearizable_quorum option and review the existing replication configuration documentation. Document its default calculation, relationship to replication.synchro_quorum, and prerequisites for linearizable transactions; done means users can configure and understand the option.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.