[
https://issues.apache.org/jira/browse/CASSANDRA-7403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14054086#comment-14054086
]
Benedict commented on CASSANDRA-7403:
-------------------------------------
I should note for the record that I don't fully agree with the reasoning(s)
stated, however I definitely don't feel strongly enough about this to
perpetuate the discussion.
I've uploaded a new version of the patch with reconcile order for expiring
cells switched to ts,isdeleted,value,ttl
> 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
> Fix For: 2.1.0
>
>
> 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)