Skip to content

Commit 9db2e7a

Browse files
Merge branch 'cassandra-4.1' into cassandra-5.0
* cassandra-4.1: Paxos v2 cassandra.yaml option
2 parents 39977ce + 965dd70 commit 9db2e7a

3 files changed

Lines changed: 60 additions & 0 deletions

File tree

CHANGES.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
5.0.9
2+
Merged from 4.1:
3+
* Add Paxos v2 option and informatin in cassandra.yaml (CASSANDRA-21316)
24
Merged from 4.0:
35
* Backport CASSANDRA-17810 fix and improve RTBoundValidator error messages (CASSANDRA-18282)
46

conf/cassandra.yaml

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

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

conf/cassandra_latest.yaml

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

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

0 commit comments

Comments
 (0)