Skip to content

Commit daadd25

Browse files
Merge branch 'cassandra-5.0' into trunk
* cassandra-5.0: Paxos v2 cassandra.yaml option
2 parents 32162cf + 9db2e7a commit daadd25

3 files changed

Lines changed: 59 additions & 0 deletions

File tree

CHANGES.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
* Rework ZSTD dictionary compression logic to create a trainer per training (CASSANDRA-21209)
1414
Merged from 5.0:
1515
Merged from 4.1:
16+
* Add Paxos v2 option and informatin in cassandra.yaml (CASSANDRA-21316)
1617
* Harden data resurrection startup check with atomic heartbeat file write with fallback (CASSANDRA-21290)
1718
Merged from 4.0:
1819
* Backport CASSANDRA-17810 fix and improve RTBoundValidator error messages (CASSANDRA-18282)

conf/cassandra.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1677,6 +1677,35 @@ dynamic_snitch_reset_interval: 600000ms
16771677
# until the pinned host was 20% worse than the fastest.
16781678
dynamic_snitch_badness_threshold: 1.0
16791679

1680+
# Paxos variant for lightweight transactions (LWTs)
1681+
# Options:
1682+
# v1
1683+
# - Legacy Paxos. Expect 4RTs for a write and 3RTs for a read. (default)
1684+
#
1685+
# v1_without_linearizable_reads_or_rejected_writes
1686+
# - Legacy Paxos. Expect 4RTs for a write and 2RTs for a read.
1687+
# With legacy semantics for read/read and rejected write linearizability, i.e. not guaranteed.
1688+
#
1689+
# v2
1690+
# - Optimized Paxos. Expect 2RTs for a write, and either 1RT or 2RT for a read. (recommended)
1691+
#
1692+
# v2_without_linearizable_reads
1693+
# - Optimized Paxos. Expect 2RTs for a write and 1RT for a read.
1694+
#
1695+
# v2_without_linearizable_reads_or_rejected_writes
1696+
# - Optimized Paxos. Expect 2RTs for a write and 1RT for a read.
1697+
# With legacy semantics for read/read and rejected write linearizability, i.e. not guaranteed.
1698+
#
1699+
# To upgrade from v1:
1700+
# 1. Ensure all nodes are on same Cassandra version 4.1+.
1701+
# 2. Run `nodetool repair --full -pr` on each node.
1702+
# 3. Set paxos_variant: v2 on each node and rolling restart.
1703+
# Rollback is safe: revert to v1 and rolling restart. No data migration needed.
1704+
#
1705+
# With any v2 variant and `paxos_state_purging: repaired` it is safe to use ANY Commit consistency.
1706+
#
1707+
#paxos_variant: v1
1708+
16801709
# Configures Java crypto provider. By default, it will use DefaultCryptoProvider
16811710
# which will install Amazon Correto Crypto Provider.
16821711
#

conf/cassandra_latest.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1563,6 +1563,35 @@ dynamic_snitch_reset_interval: 600000ms
15631563
# until the pinned host was 20% worse than the fastest.
15641564
dynamic_snitch_badness_threshold: 1.0
15651565

1566+
# Paxos variant for lightweight transactions (LWTs)
1567+
# Options:
1568+
# v1
1569+
# - Legacy Paxos. Expect 4RTs for a write and 3RTs for a read. (default)
1570+
#
1571+
# v1_without_linearizable_reads_or_rejected_writes
1572+
# - Legacy Paxos. Expect 4RTs for a write and 2RTs for a read.
1573+
# With legacy semantics for read/read and rejected write linearizability, i.e. not guaranteed.
1574+
#
1575+
# v2
1576+
# - Optimized Paxos. Expect 2RTs for a write, and either 1RT or 2RT for a read. (recommended)
1577+
#
1578+
# v2_without_linearizable_reads
1579+
# - Optimized Paxos. Expect 2RTs for a write and 1RT for a read.
1580+
#
1581+
# v2_without_linearizable_reads_or_rejected_writes
1582+
# - Optimized Paxos. Expect 2RTs for a write and 1RT for a read.
1583+
# With legacy semantics for read/read and rejected write linearizability, i.e. not guaranteed.
1584+
#
1585+
# To upgrade from v1:
1586+
# 1. Ensure all nodes are on same Cassandra version 4.1+.
1587+
# 2. Run `nodetool repair --full -pr` on each node.
1588+
# 3. Set paxos_variant: v2 on each node and rolling restart.
1589+
# Rollback is safe: revert to v1 and rolling restart. No data migration needed.
1590+
#
1591+
# With any v2 variant and `paxos_state_purging: repaired` it is safe to use ANY Commit consistency.
1592+
#
1593+
paxos_variant: v2
1594+
15661595
# Configures Java crypto provider. By default, it will use DefaultCryptoProvider
15671596
# which will install Amazon Correto Crypto Provider.
15681597
#

0 commit comments

Comments
 (0)