Cassandra 3.11 to 4.0 Rolling Upgrade: Where Does the Snapshot Rollback Window Actually Close?
0 reputation · 09 Mar 2021, 05:26 UTC
0 reputation · 09 Mar 2021, 05:26 UTC
A rolling upgrade from Cassandra 3.11 to 4.0 needs a rollback plan, and the unresolved question is where that plan stops working if the upgrade fails midway. The documented per-node sequence (drain, snapshot, then restart on 4.0) leaves pre-upgrade snapshots as hard links to existing SSTables, and the 3.11 binary can neither read 4.0-format SSTables nor replay 4.0 commitlog segments.
That suggests the real boundary is the first write a 4.0 node accepts — its flushed memtables and commitlog segments are immediately new-format — not the point where nodetool upgradesstables or compaction rewrites older files. The two events are often conflated, muddying the upgradesstables-timing decision.
Constraints: the mixed-version window rules out DDL and repairs; coexisting old- and new-format SSTables roughly double data-directory usage; and 4.0's changed TTL expiration handling (the 2038 local-expiration overflow) adds caveats for long-TTL tables during the window. Flags and limits vary by release, so NEWS.txt for the exact pair needs confirming.
A thoughtful contribution can make all the difference. Be the first to share one.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.