Blake Eggleston created CASSANDRA-21443:
-------------------------------------------
Summary: CEP-45: Lost witness marker race
Key: CASSANDRA-21443
URL: https://issues.apache.org/jira/browse/CASSANDRA-21443
Project: Apache Cassandra
Issue Type: Bug
Reporter: Blake Eggleston
We periodically persist offsets we’ve witnessed to a system table (currently
every 1s, with a todo to increase to period to 60s)
On startup, we load these offsets from disk, and then play back the mutation
journal for mutations that weren’t flushed to sstables, and record those
mutations as witnessed in memory. However, if a memtable containing mutations
not yet durably recorded as witnessed is flushed to an sstable and then the
node is shutdown before recording them, they won’t be replayed on startup and
the node will forget that it has seen them, and not include them in mutation
summaries (but still returning data for them in reads). This will cause
non-monotonic read results and will break the journal sync barrier guarantees.
We should include some additional metadata with the persisted witness data
indicating the most recent full journal segment it has seen, and then read
anything afterwards when replaying the journal, skipping the write path for
anything already flushed to an sstable.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]