diff --git a/CHANGES.txt b/CHANGES.txt index 44f9e4c4a2..281d10b9f8 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -3,6 +3,8 @@ * Revert CASSANDRA-7807 (tracing completion client notifications) (CASSANDRA-9429) * Add ability to stop compaction by ID (CASSANDRA-7207) Merged from 2.1: +2.1.6 + * Optimize range tombstone memory footprint (CASSANDRA-8603) * Use configured gcgs in anticompaction (CASSANDRA-9397) diff --git a/src/java/org/apache/cassandra/db/RangeTombstone.java b/src/java/org/apache/cassandra/db/RangeTombstone.java index c69ea8c9b4..e56c5f0049 100644 --- a/src/java/org/apache/cassandra/db/RangeTombstone.java +++ b/src/java/org/apache/cassandra/db/RangeTombstone.java @@ -272,6 +272,10 @@ public class RangeTombstone extends Interval implements { Composite max = type.serializer().deserialize(in); DeletionTime dt = DeletionTime.serializer.deserialize(in); + // If the max equals the min.end(), we can avoid keeping an extra ByteBuffer in memory by using + // min.end() instead of max + Composite minEnd = min.end(); + max = minEnd.equals(max) ? minEnd : max; return new RangeTombstone(min, max, dt); }