[ https://issues.apache.org/jira/browse/CASSANDRA-7403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14053672#comment-14053672 ]
Sylvain Lebresne commented on CASSANDRA-7403: --------------------------------------------- To be clear, I don't feel strongly on whether we should favour values-over-ttl or ttl-over-values in theory, I don't think it matters much on paper. But that's why I prefer keeping the existing behaviour. > 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)