[ 
https://issues.apache.org/jira/browse/CASSANDRA-9949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15096157#comment-15096157
 ] 

Stefania commented on CASSANDRA-9949:
-------------------------------------

The patch for 2.2 is ready, I would like a review before I implement the 
equivalent for 3.0+.

I decided to track the min timestamp at the memtable level, when a new 
partition is inserted. There is an inexpensive way to calculate the minimum 
timestamp by piggy-backing on the {{BTree}} update loop on cells via 
{{AtomicBTreeColumns.ColumnUpdater}}, specifically its {{apply}} methods. The 
downside is that if a cell is reconciled with another cell with a later 
timestamp, we pick the smallest of the two timestamps even though technically 
the latest timestamp should be sufficient. This shouldn't matter though, since 
we then pick the smallest timestamp across all partitions in the memtable. I 
hope this is a good enough approximation.

I've also added a unit test which should be sufficient to test the new 
functionality.

||2.2||
|[patch|https://github.com/stef1927/cassandra/commits/9949-2.2]|
|[testall|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-9949-2.2-testall/]|
|[dtest|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-9949-2.2-dtest/]|

CI is still running.

> maxPurgeableTimestamp needs to check memtables too
> --------------------------------------------------
>
>                 Key: CASSANDRA-9949
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9949
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local Write-Read Paths
>            Reporter: Jonathan Ellis
>            Assignee: Stefania
>             Fix For: 2.1.x, 2.2.x
>
>
> overlapIterator/maxPurgeableTimestamp don't include the memtables, so a 
> very-out-of-order write could be ignored



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

Reply via email to