You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by be...@apache.org on 2015/05/01 12:34:11 UTC

[2/6] cassandra git commit: Fix partition-level-delete-only workload accounting

Fix partition-level-delete-only workload accounting

patch by benedict; reviewed by jbellis for CASSANDRA-9194


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f0c7a6f0
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f0c7a6f0
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f0c7a6f0

Branch: refs/heads/cassandra-2.1
Commit: f0c7a6f03cf55ddcfe11a58c80087ed8b0806cf4
Parents: 593a725
Author: Benedict Elliott Smith <be...@apache.org>
Authored: Fri May 1 11:32:31 2015 +0100
Committer: Benedict Elliott Smith <be...@apache.org>
Committed: Fri May 1 11:32:31 2015 +0100

----------------------------------------------------------------------
 CHANGES.txt                                    | 1 +
 src/java/org/apache/cassandra/db/Memtable.java | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f0c7a6f0/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 4e7a5d0..dfdad51 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.15:
+ * Fix partition-level-delete-only workload accounting (CASSANDRA-9194)
  * Allow scrub to handle corrupted compressed chunks (CASSANDRA-9140)
  * Fix assertion error when resetlocalschema is run during repair (CASSANDRA-9249)
  * Disable single sstable tombstone compactions for DTCS by default (CASSANDRA-9234)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f0c7a6f0/src/java/org/apache/cassandra/db/Memtable.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Memtable.java b/src/java/org/apache/cassandra/db/Memtable.java
index 19f38be..897d94e 100644
--- a/src/java/org/apache/cassandra/db/Memtable.java
+++ b/src/java/org/apache/cassandra/db/Memtable.java
@@ -206,17 +206,21 @@ public class Memtable
     {
         AtomicSortedColumns previous = rows.get(key);
 
+        long initialSize = 0;
         if (previous == null)
         {
             AtomicSortedColumns empty = cf.cloneMeShallow(AtomicSortedColumns.factory, false);
             // We'll add the columns later. This avoids wasting works if we get beaten in the putIfAbsent
             previous = rows.putIfAbsent(new DecoratedKey(key.token, allocator.clone(key.key)), empty);
             if (previous == null)
+            {
                 previous = empty;
+                initialSize += 1;
+            }
         }
 
         final Pair<Long, Long> pair = previous.addAllWithSizeDelta(cf, allocator, localCopyFunction, indexer);
-        currentSize.addAndGet(pair.left);
+        currentSize.addAndGet(initialSize + pair.left);
         currentOperations.addAndGet(cf.getColumnCount() + (cf.isMarkedForDelete() ? 1 : 0) + cf.deletionInfo().rangeCount());
         return pair.right;
     }