cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefania (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-9949) maxPurgeableTimestamp needs to check memtables too
Date Wed, 13 Jan 2016 13:11:39 GMT


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.


CI is still running.

> maxPurgeableTimestamp needs to check memtables too
> --------------------------------------------------
>                 Key: CASSANDRA-9949
>                 URL:
>             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

View raw message