Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2C43B1054B for ; Wed, 20 May 2015 17:04:36 +0000 (UTC) Received: (qmail 31339 invoked by uid 500); 20 May 2015 17:04:36 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 31301 invoked by uid 500); 20 May 2015 17:04:36 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 31269 invoked by uid 99); 20 May 2015 17:04:35 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 20 May 2015 17:04:35 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id D6D3FDFBDC; Wed, 20 May 2015 17:04:35 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: aleksey@apache.org To: commits@cassandra.apache.org Date: Wed, 20 May 2015 17:04:35 -0000 Message-Id: <3e83d082d0c140d39d0ca1395bc4e47f@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [1/3] cassandra git commit: Optimize range tombstone memory footprint Repository: cassandra Updated Branches: refs/heads/trunk 2e48b6af9 -> 418aefdd2 Optimize range tombstone memory footprint patch by Benjamin Lerer; reviewed by Aleksey Yeschenko for CASSANDRA-8603 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2248780e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2248780e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2248780e Branch: refs/heads/trunk Commit: 2248780eae46d98be8a9414d3e833fb6c16c7137 Parents: 7af9c6a Author: blerer Authored: Tue May 19 16:12:53 2015 +0200 Committer: Aleksey Yeschenko Committed: Wed May 20 19:57:35 2015 +0300 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/RangeTombstone.java | 4 ++++ 2 files changed, 5 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2248780e/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 6fc1c9c..92d4d54 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.6 + * Optimize range tombstone memory footprint (CASSANDRA-8603) * Use configured gcgs in anticompaction (CASSANDRA-9397) * Warn on misuse of unlogged batches (CASSANDRA-9282) * Failure detector detects and ignores local pauses (CASSANDRA-9183) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2248780e/src/java/org/apache/cassandra/db/RangeTombstone.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/RangeTombstone.java b/src/java/org/apache/cassandra/db/RangeTombstone.java index 3f3d675..feeadbb 100644 --- a/src/java/org/apache/cassandra/db/RangeTombstone.java +++ b/src/java/org/apache/cassandra/db/RangeTombstone.java @@ -273,6 +273,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); }