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)