[
https://issues.apache.org/jira/browse/CASSANDRA-7403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14053860#comment-14053860
]
Jonathan Ellis commented on CASSANDRA-7403:
-------------------------------------------
bq. value reconciliation does not apply uniformly for a single update, so we
could end up with a mix of both TTLs and values from different writes, where we
might have a chance to uniformly select with TTLs
Pretty sure there are other situations where values gives you uniformity and
TTL does not, as alluded to by Aleksey.
bq. There is some indication the data itself takes greater precedence if you
want to keep it longer
I don't think this is a strong enough reason to change things at this point.
> 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)