[ 
https://issues.apache.org/jira/browse/CASSANDRA-20920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Petrov updated CASSANDRA-20920:
------------------------------------
    Attachment: ci_summary-2.html

> CEP-45: Journal Replay 
> -----------------------
>
>                 Key: CASSANDRA-20920
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20920
>             Project: Apache Cassandra
>          Issue Type: Improvement
>          Components: Consistency/Coordination
>            Reporter: Alex Petrov
>            Assignee: Alex Petrov
>            Priority: High
>         Attachments: ci_summary-1.html, ci_summary-2.html, ci_summary.html
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> This patch introduces SegmentStateTracker, which tracks Mutation Journal 
> allocations and listens to Memtable->SSTable flushes.
>   * SegmentStateTracker logic is largely adapted from CommitLog (i.e. 
> tracking dirty allocation upper bound, and clean/flushed min/max bounds, and 
> checking their intersection to see if entire segment is flushed.
>   * MutationJournal now tracks new allocations per segment (and, within a 
> segment, per table), and listens to Memtable flushes, marking 
> CommitLogPosition bounds reported by the flush as clean
>   * Memtables now distinguish between commit log positions they track vs 
> journal positions. It might be a good idea to mark CommitLogPosition with a 
> corresponding flag to avoid accidentally passing a wrong position
> {{MutationJournal#replay}} is added, and serves a purpose similar to 
> CommitLog replay, albeit lacks some of its functionality, such as replay 
> filter, and DROP TABLE support for now (missing pieces documented inline). 
> Only segments holding allocations that were not memtable->sstable flushed are 
> considered for replay.
> Testing:
>   * A fuzz test for SegmentStateTracker
>   * A test that assumes some memtable behavior to exercise MutationJournal 
> integration
>   * Full integration / bounce test validating that data is being recovered by 
> replay
> Important: a follow-up patch (in work by [~aleksey]) adds compaction and 
> truncation of segments. Added tests will need to be expanded to support this.
> Remark: [trunk/accord commit I reviewed 
> today|https://github.com/apache/cassandra/pull/4384/files#diff-a6dbe3c4eab186aaa33f04d7826c2239bfe99b3b392b026d18b8f31584652303R939]
>  has changes StaticSegmentIterator to just SegmentIterator, which largely 
> aligns with this patch, but might cause a rebase.



--
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