Carl Yeksigian created CASSANDRA-9995:
-----------------------------------------

             Summary: Add background consistency mode for MV
                 Key: CASSANDRA-9995
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9995
             Project: Cassandra
          Issue Type: New Feature
            Reporter: Carl Yeksigian


Currently, we only support a fast refresh mode which slows down writes, but 
brings the base and view to consistency quickly. It would be possible to keep 
reads and writes close to the same performance they have now by sacrificing the 
time to consistency.

The way this mode would work is:
- When data is flushed, the sstable is marked as inconsistent for MV
- Compaction can only run on either the set of sstables which are consistent, 
or the set of sstables which are inconsistent, but cannot mix the two
- A background job would take the sstables which are inconsistent and compare 
them to the current set which are consistent and generate the appropriate 
updates for the index to bring it up to date
- Any newly streamed sstables would be marked as inconsistent and would be 
included the next time the job ran

The background consistency job could be configured to run whenever a new 
sstable is flushed, or at certain time intervals.

By switching to a job which only looked at the flushed sstables, we wouldn't 
have to worry about the memtable updates which generate updates to the view but 
aren't recorded anywhere. We also wouldn't have to do any coordination at write 
time, use the batchlog for these writes, or issue any new updates when applying 
the MV update.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to