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

Reply via email to