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]

Reply via email to