[
https://issues.apache.org/jira/browse/CASSANDRA-12792?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joel Knighton updated CASSANDRA-12792:
--------------------------------------
Status: Patch Available (was: In Progress)
The problem is that Long.MAX_VALUE is used as a sentinel value in the
purgeability path to indicate that there are no comparison tables containing
the data. This means that we can't simply change the condition, since another
table containing a value with timestamp Long.MAX_VALUE needs to be handled
differently than the case where there are no comparison tables containing the
value. I've pushed branches for 2.2/3.0/3.X/trunk that address this. A 2.1
patch could easily be prepared as a subset of the 2.2 branch if necessary. All
branches adopt the same fundamental approach of adding an object that evaluates
purgeability, essentially functioning as a variant to encompass all timestamp
values as well as the unconditional purgeability case. The 2.2 branch differs
from the higher branches in some details. 3.0 mostly merges cleanly to 3.X but
has a slightly different patch. The 3.X patch merges cleanly into 4.0
CI looks clean on all branches.
||branch||testall||dtest||
|[CASSANDRA-12792-2.2|https://github.com/jkni/cassandra/tree/CASSANDRA-12792-2.2]|[testall|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-CASSANDRA-12792-2.2-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-CASSANDRA-12792-2.2-dtest]|
|[CASSANDRA-12792-3.0|https://github.com/jkni/cassandra/tree/CASSANDRA-12792-3.0]|[testall|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-CASSANDRA-12792-3.0-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-CASSANDRA-12792-3.0-dtest]|
|[CASSANDRA-12792-3.X|https://github.com/jkni/cassandra/tree/CASSANDRA-12792-3.X]|[testall|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-CASSANDRA-12792-3.X-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-CASSANDRA-12792-3.X-dtest]|
|[CASSANDRA-12792-trunk|https://github.com/jkni/cassandra/tree/CASSANDRA-12792-trunk]|[testall|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-CASSANDRA-12792-trunk-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-CASSANDRA-12792-trunk-dtest]|
> delete with timestamp long.MAX_VALUE for the whole key creates tombstone that
> cannot be removed.
> -------------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-12792
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12792
> Project: Cassandra
> Issue Type: Bug
> Components: Compaction
> Reporter: Ian Ilsley
> Assignee: Joel Knighton
>
> In db/compaction/LazilyCompactedRow.java
> we only check for < MaxPurgeableTimeStamp
> eg:
> (this.maxRowTombstone.markedForDeleteAt < getMaxPurgeableTimestamp())
> this should probably be <=
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)