Don't compute expensive MaxPurgeableTimestamp until we've verified there's an expired tombstone

patch by jbellis; reviewed by marcuse for CASSANDRA-11834
This commit is contained in:
Jonathan Ellis 2016-05-18 12:24:23 -05:00
parent 9359af2ea5
commit 00f25401c9
2 changed files with 9 additions and 4 deletions

View File

@ -1,13 +1,18 @@
2.1.15
* Fix paging on DISTINCT queries repeats result when first row in partition changes (CASSANDRA-11679)
* Don't compute expensive MaxPurgeableTimestamp until we've verified there's an
expired tombstone (CASSANDRA-11834)
* Fix paging on DISTINCT queries repeats result when first row in partition changes
(CASSANDRA-11679)
* Add option to disable use of severity in DynamicEndpointSnitch (CASSANDRA-11737)
* cqlsh COPY FROM fails for null values with non-prepared statements (CASSANDRA-11631)
* Make cython optional in pylib/setup.py (CASSANDRA-11630)
* Change order of directory searching for cassandra.in.sh to favor local one (CASSANDRA-11628)
* Change order of directory searching for cassandra.in.sh to favor local one
(CASSANDRA-11628)
* cqlsh COPY FROM fails with []{} chars in UDT/tuple fields/values (CASSANDRA-11633)
* clqsh: COPY FROM throws TypeError with Cython extensions enabled (CASSANDRA-11574)
* cqlsh: COPY FROM ignores NULL values in conversion (CASSANDRA-11549)
* Validate levels when building LeveledScanner to avoid overlaps with orphaned sstables (CASSANDRA-9935)
* Validate levels when building LeveledScanner to avoid overlaps with orphaned
sstables (CASSANDRA-9935)
2.1.14

View File

@ -271,7 +271,7 @@ public class LazilyCompactedRow extends AbstractCompactedRow
RangeTombstone t = tombstone;
tombstone = null;
if (t.timestamp() < getMaxPurgeableTimestamp() && t.data.isGcAble(controller.gcBefore))
if (t.data.isGcAble(controller.gcBefore) && t.timestamp() < getMaxPurgeableTimestamp())
{
indexBuilder.tombstoneTracker().update(t, true);
return null;