[
https://issues.apache.org/jira/browse/CASSANDRA-7403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14052279#comment-14052279
]
Benedict commented on CASSANDRA-7403:
-------------------------------------
Patch available
[here|https://github.com/belliottsmith/cassandra/tree/7403-ttlreconcile]
> Reconciliation doesn't consider fields specific to expiring cells
> ------------------------------------------------------------------
>
> Key: CASSANDRA-7403
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7403
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Sam Tunnicliffe
> Assignee: Benedict
>
> Reconciling 2 ExpiringColumns which are equal in every way except for the
> localExpirationTime field will always favour the instance on which reconcile
> is called as fields specific to expiration are not considered.
> This is actually beneficial in pre-2.1 versions as in
> AtomicSortedColumns.Holder.addColumn we call reconcile on the new column,
> which 'wins' the reconcilliation and so the localExpirationTime is
> effectively extended.
> From 2.1 onwards, reconcile is actually called on the existing value (in
> BTreeSortedColumns.ColumnUpdater) and so it wins the reconcilliation and the
> ttl doesn't get extended. The same thing happens in the iterator returned
> from MergeIterator.Reducer.getReducer() so we see the same behaviour when
> merging cells from the multiple SSTables and/or memtables.
--
This message was sent by Atlassian JIRA
(v6.2#6252)