You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2013/09/25 03:51:32 UTC

[1/9] git commit: Start MeteredFlusher earlier to prevent OOM during CL replay patch by Oleg Anastasyev; reviewed by jbellis for CASSANDRA-7078

Updated Branches:
  refs/heads/cassandra-1.2 546485310 -> 16f19a7cc
  refs/heads/cassandra-2.0 07638f41a -> a06a13838
  refs/heads/trunk 2fea9fab0 -> 3a9120bbd


Start MeteredFlusher earlier to prevent OOM during CL replay
patch by Oleg Anastasyev; reviewed by jbellis for CASSANDRA-7078


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

Branch: refs/heads/cassandra-2.0
Commit: 546485310e20dd2c6c67f863cba4b5acd1bae586
Parents: fa8d923
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Sep 24 10:44:20 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Sep 24 10:47:08 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                                | 1 +
 src/java/org/apache/cassandra/service/CassandraDaemon.java | 7 ++++---
 2 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/54648531/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ae2ab5e..a5903fa 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.11
+ * Start MeteredFlusher earlier to prevent OOM during CL replay (CASSANDRA-6087)
  * Avoid sending Truncate command to fat clients (CASSANDRA-6088)
  * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)
  * Allow where clause conditions to be in parenthesis (CASSANDRA-6037)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/54648531/src/java/org/apache/cassandra/service/CassandraDaemon.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java b/src/java/org/apache/cassandra/service/CassandraDaemon.java
index b2fc367..448bb0a 100644
--- a/src/java/org/apache/cassandra/service/CassandraDaemon.java
+++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java
@@ -297,6 +297,10 @@ public class CassandraDaemon
             logger.warn("Unable to start GCInspector (currently only supported on the Sun JVM)");
         }
 
+        // MeteredFlusher can block if flush queue fills up, so don't put on scheduledTasks
+        // Start it before commit log, so memtables can flush during commit log replay
+        StorageService.optionalTasks.scheduleWithFixedDelay(new MeteredFlusher(), 1000, 1000, TimeUnit.MILLISECONDS);
+
         // replay the log if necessary
         try
         {
@@ -335,9 +339,6 @@ public class CassandraDaemon
         };
         StorageService.optionalTasks.schedule(runnable, 5 * 60, TimeUnit.SECONDS);
 
-        // MeteredFlusher can block if flush queue fills up, so don't put on scheduledTasks
-        StorageService.optionalTasks.scheduleWithFixedDelay(new MeteredFlusher(), 1000, 1000, TimeUnit.MILLISECONDS);
-
         SystemTable.finishStartup();
 
         // start server internals


[9/9] git commit: merge from 2.0

Posted by jb...@apache.org.
merge from 2.0


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

Branch: refs/heads/trunk
Commit: 3a9120bbd9318b9cc8c647920bfb0d348fcf104c
Parents: 2fea9fa a06a138
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Sep 24 20:51:26 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Sep 24 20:51:26 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                            | 1 +
 src/java/org/apache/cassandra/db/Memtable.java         | 4 +---
 src/java/org/apache/cassandra/utils/Allocator.java     | 2 --
 src/java/org/apache/cassandra/utils/HeapAllocator.java | 5 -----
 src/java/org/apache/cassandra/utils/SlabAllocator.java | 8 --------
 5 files changed, 2 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a9120bb/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a9120bb/src/java/org/apache/cassandra/db/Memtable.java
----------------------------------------------------------------------


[3/9] git commit: merge from 1.2

Posted by jb...@apache.org.
merge from 1.2


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

Branch: refs/heads/trunk
Commit: 07638f41a8c62932b05bdb498aaaedabd2efd139
Parents: 7af56b5 424206a
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Sep 24 10:47:40 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Sep 24 10:47:40 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |   2 +
 examples/client_only/src/ClientOnlyExample.java | 109 ++++---------------
 src/java/org/apache/cassandra/auth/Auth.java    |   5 +-
 .../cassandra/auth/CassandraAuthorizer.java     |   2 +-
 .../cassandra/auth/PasswordAuthenticator.java   |   2 +-
 .../apache/cassandra/cql3/QueryProcessor.java   |   5 +-
 .../org/apache/cassandra/cql3/ResultSet.java    |  11 +-
 .../cql3/statements/ListUsersStatement.java     |   2 +-
 .../cql3/statements/SelectStatement.java        |   4 +-
 .../apache/cassandra/service/ClientState.java   |  64 +++++++----
 .../apache/cassandra/service/QueryState.java    |   8 ++
 .../cassandra/thrift/ThriftClientState.java     |  11 +-
 .../cassandra/thrift/ThriftSessionManager.java  |   6 +-
 .../org/apache/cassandra/tools/NodeCmd.java     |   7 ++
 .../cassandra/transport/ServerConnection.java   |   6 +-
 15 files changed, 114 insertions(+), 130 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/07638f41/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 4d52c99,281665e..830f568
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -2,8 -2,9 +2,10 @@@
   * Improve memory usage of metadata min/max column names (CASSANDRA-6077)
   * Fix thrift validation refusing row markers on CQL3 tables (CASSANDRA-6081)
   * Fix insertion of collections with CAS (CASSANDRA-6069)
+  * Correctly send metadata on SELECT COUNT (CASSANDRA-6080)
+  * Track clients' remote addresses in ClientState (CASSANDRA-6070)
  Merged from 1.2:
 + * Start MeteredFlusher earlier to prevent OOM during CL replay (CASSANDRA-6087)
   * Avoid sending Truncate command to fat clients (CASSANDRA-6088)
   * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)
   * Allow where clause conditions to be in parenthesis (CASSANDRA-6037)


[5/9] git commit: Allow estimated memtable size to exceed slab allocator size patch by jbellis; reviewed by jasobrown for CASSANDRA-6078

Posted by jb...@apache.org.
Allow estimated memtable size to exceed slab allocator size
patch by jbellis; reviewed by jasobrown for CASSANDRA-6078


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

Branch: refs/heads/trunk
Commit: 16f19a7cce409da4e8ab9522c29450b17879e8d9
Parents: 5464853
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Sep 24 20:46:45 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Sep 24 20:46:45 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                            | 1 +
 src/java/org/apache/cassandra/db/Memtable.java         | 4 +---
 src/java/org/apache/cassandra/utils/Allocator.java     | 2 --
 src/java/org/apache/cassandra/utils/HeapAllocator.java | 5 -----
 src/java/org/apache/cassandra/utils/SlabAllocator.java | 8 --------
 5 files changed, 2 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index a5903fa..6341e29 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.11
+ * Allow estimated memtable size to exceed slab allocator size (CASSANDRA-6078)
  * Start MeteredFlusher earlier to prevent OOM during CL replay (CASSANDRA-6087)
  * Avoid sending Truncate command to fat clients (CASSANDRA-6088)
  * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/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 cbe20fe..e39ccfe 100644
--- a/src/java/org/apache/cassandra/db/Memtable.java
+++ b/src/java/org/apache/cassandra/db/Memtable.java
@@ -141,11 +141,9 @@ public class Memtable
     {
         long estimatedSize = (long) (currentSize.get() * cfs.liveRatio);
 
-        // cap the estimate at both ends by what the allocator can tell us
+        // liveRatio is just an estimate; we can get a lower bound directly from the allocator
         if (estimatedSize < allocator.getMinimumSize())
             return allocator.getMinimumSize();
-        if (estimatedSize > allocator.getMaximumSize())
-            return allocator.getMaximumSize();
 
         return estimatedSize;
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/src/java/org/apache/cassandra/utils/Allocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/Allocator.java b/src/java/org/apache/cassandra/utils/Allocator.java
index d11815d..7134353 100644
--- a/src/java/org/apache/cassandra/utils/Allocator.java
+++ b/src/java/org/apache/cassandra/utils/Allocator.java
@@ -38,6 +38,4 @@ public abstract class Allocator
     public abstract ByteBuffer allocate(int size);
 
     public abstract long getMinimumSize();
-
-    public abstract long getMaximumSize();
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/src/java/org/apache/cassandra/utils/HeapAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/HeapAllocator.java b/src/java/org/apache/cassandra/utils/HeapAllocator.java
index efe55dd..3d19b98 100644
--- a/src/java/org/apache/cassandra/utils/HeapAllocator.java
+++ b/src/java/org/apache/cassandra/utils/HeapAllocator.java
@@ -38,9 +38,4 @@ public final class HeapAllocator extends Allocator
     {
         return 0;
     }
-
-    public long getMaximumSize()
-    {
-        return Long.MAX_VALUE;
-    }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/src/java/org/apache/cassandra/utils/SlabAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/SlabAllocator.java b/src/java/org/apache/cassandra/utils/SlabAllocator.java
index 6ff66f8..af38cde 100644
--- a/src/java/org/apache/cassandra/utils/SlabAllocator.java
+++ b/src/java/org/apache/cassandra/utils/SlabAllocator.java
@@ -117,14 +117,6 @@ public class SlabAllocator extends Allocator
     }
 
     /**
-     * @return an upper bound on how much space has been allocated
-     */
-    public long getMaximumSize()
-    {
-        return unslabbed.get() + regionCount * (long)REGION_SIZE;
-    }
-
-    /**
      * A region of memory out of which allocations are sliced.
      *
      * This serves two purposes:


[2/9] git commit: Start MeteredFlusher earlier to prevent OOM during CL replay patch by Oleg Anastasyev; reviewed by jbellis for CASSANDRA-7078

Posted by jb...@apache.org.
Start MeteredFlusher earlier to prevent OOM during CL replay
patch by Oleg Anastasyev; reviewed by jbellis for CASSANDRA-7078


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

Branch: refs/heads/trunk
Commit: 546485310e20dd2c6c67f863cba4b5acd1bae586
Parents: fa8d923
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Sep 24 10:44:20 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Sep 24 10:47:08 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                                | 1 +
 src/java/org/apache/cassandra/service/CassandraDaemon.java | 7 ++++---
 2 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/54648531/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ae2ab5e..a5903fa 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.11
+ * Start MeteredFlusher earlier to prevent OOM during CL replay (CASSANDRA-6087)
  * Avoid sending Truncate command to fat clients (CASSANDRA-6088)
  * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)
  * Allow where clause conditions to be in parenthesis (CASSANDRA-6037)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/54648531/src/java/org/apache/cassandra/service/CassandraDaemon.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java b/src/java/org/apache/cassandra/service/CassandraDaemon.java
index b2fc367..448bb0a 100644
--- a/src/java/org/apache/cassandra/service/CassandraDaemon.java
+++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java
@@ -297,6 +297,10 @@ public class CassandraDaemon
             logger.warn("Unable to start GCInspector (currently only supported on the Sun JVM)");
         }
 
+        // MeteredFlusher can block if flush queue fills up, so don't put on scheduledTasks
+        // Start it before commit log, so memtables can flush during commit log replay
+        StorageService.optionalTasks.scheduleWithFixedDelay(new MeteredFlusher(), 1000, 1000, TimeUnit.MILLISECONDS);
+
         // replay the log if necessary
         try
         {
@@ -335,9 +339,6 @@ public class CassandraDaemon
         };
         StorageService.optionalTasks.schedule(runnable, 5 * 60, TimeUnit.SECONDS);
 
-        // MeteredFlusher can block if flush queue fills up, so don't put on scheduledTasks
-        StorageService.optionalTasks.scheduleWithFixedDelay(new MeteredFlusher(), 1000, 1000, TimeUnit.MILLISECONDS);
-
         SystemTable.finishStartup();
 
         // start server internals


[7/9] git commit: merge from 1.2

Posted by jb...@apache.org.
merge from 1.2


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

Branch: refs/heads/trunk
Commit: a06a138385442084e37a039adeafdfb5889101ef
Parents: 07638f4 16f19a7
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Sep 24 20:50:40 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Sep 24 20:50:40 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                            | 1 +
 src/java/org/apache/cassandra/db/Memtable.java         | 4 +---
 src/java/org/apache/cassandra/utils/Allocator.java     | 2 --
 src/java/org/apache/cassandra/utils/HeapAllocator.java | 5 -----
 src/java/org/apache/cassandra/utils/SlabAllocator.java | 8 --------
 5 files changed, 2 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a06a1383/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 830f568,6341e29..fe4efc7
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,10 -1,5 +1,11 @@@
 -1.2.11
 +2.0.2
 + * Improve memory usage of metadata min/max column names (CASSANDRA-6077)
 + * Fix thrift validation refusing row markers on CQL3 tables (CASSANDRA-6081)
 + * Fix insertion of collections with CAS (CASSANDRA-6069)
 + * Correctly send metadata on SELECT COUNT (CASSANDRA-6080)
 + * Track clients' remote addresses in ClientState (CASSANDRA-6070)
 +Merged from 1.2:
+  * Allow estimated memtable size to exceed slab allocator size (CASSANDRA-6078)
   * Start MeteredFlusher earlier to prevent OOM during CL replay (CASSANDRA-6087)
   * Avoid sending Truncate command to fat clients (CASSANDRA-6088)
   * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a06a1383/src/java/org/apache/cassandra/db/Memtable.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a06a1383/src/java/org/apache/cassandra/utils/SlabAllocator.java
----------------------------------------------------------------------


[4/9] git commit: Allow estimated memtable size to exceed slab allocator size patch by jbellis; reviewed by jasobrown for CASSANDRA-6078

Posted by jb...@apache.org.
Allow estimated memtable size to exceed slab allocator size
patch by jbellis; reviewed by jasobrown for CASSANDRA-6078


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

Branch: refs/heads/cassandra-2.0
Commit: 16f19a7cce409da4e8ab9522c29450b17879e8d9
Parents: 5464853
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Sep 24 20:46:45 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Sep 24 20:46:45 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                            | 1 +
 src/java/org/apache/cassandra/db/Memtable.java         | 4 +---
 src/java/org/apache/cassandra/utils/Allocator.java     | 2 --
 src/java/org/apache/cassandra/utils/HeapAllocator.java | 5 -----
 src/java/org/apache/cassandra/utils/SlabAllocator.java | 8 --------
 5 files changed, 2 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index a5903fa..6341e29 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.11
+ * Allow estimated memtable size to exceed slab allocator size (CASSANDRA-6078)
  * Start MeteredFlusher earlier to prevent OOM during CL replay (CASSANDRA-6087)
  * Avoid sending Truncate command to fat clients (CASSANDRA-6088)
  * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/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 cbe20fe..e39ccfe 100644
--- a/src/java/org/apache/cassandra/db/Memtable.java
+++ b/src/java/org/apache/cassandra/db/Memtable.java
@@ -141,11 +141,9 @@ public class Memtable
     {
         long estimatedSize = (long) (currentSize.get() * cfs.liveRatio);
 
-        // cap the estimate at both ends by what the allocator can tell us
+        // liveRatio is just an estimate; we can get a lower bound directly from the allocator
         if (estimatedSize < allocator.getMinimumSize())
             return allocator.getMinimumSize();
-        if (estimatedSize > allocator.getMaximumSize())
-            return allocator.getMaximumSize();
 
         return estimatedSize;
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/src/java/org/apache/cassandra/utils/Allocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/Allocator.java b/src/java/org/apache/cassandra/utils/Allocator.java
index d11815d..7134353 100644
--- a/src/java/org/apache/cassandra/utils/Allocator.java
+++ b/src/java/org/apache/cassandra/utils/Allocator.java
@@ -38,6 +38,4 @@ public abstract class Allocator
     public abstract ByteBuffer allocate(int size);
 
     public abstract long getMinimumSize();
-
-    public abstract long getMaximumSize();
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/src/java/org/apache/cassandra/utils/HeapAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/HeapAllocator.java b/src/java/org/apache/cassandra/utils/HeapAllocator.java
index efe55dd..3d19b98 100644
--- a/src/java/org/apache/cassandra/utils/HeapAllocator.java
+++ b/src/java/org/apache/cassandra/utils/HeapAllocator.java
@@ -38,9 +38,4 @@ public final class HeapAllocator extends Allocator
     {
         return 0;
     }
-
-    public long getMaximumSize()
-    {
-        return Long.MAX_VALUE;
-    }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/src/java/org/apache/cassandra/utils/SlabAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/SlabAllocator.java b/src/java/org/apache/cassandra/utils/SlabAllocator.java
index 6ff66f8..af38cde 100644
--- a/src/java/org/apache/cassandra/utils/SlabAllocator.java
+++ b/src/java/org/apache/cassandra/utils/SlabAllocator.java
@@ -117,14 +117,6 @@ public class SlabAllocator extends Allocator
     }
 
     /**
-     * @return an upper bound on how much space has been allocated
-     */
-    public long getMaximumSize()
-    {
-        return unslabbed.get() + regionCount * (long)REGION_SIZE;
-    }
-
-    /**
      * A region of memory out of which allocations are sliced.
      *
      * This serves two purposes:


[8/9] git commit: merge from 1.2

Posted by jb...@apache.org.
merge from 1.2


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

Branch: refs/heads/cassandra-2.0
Commit: a06a138385442084e37a039adeafdfb5889101ef
Parents: 07638f4 16f19a7
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Sep 24 20:50:40 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Sep 24 20:50:40 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                            | 1 +
 src/java/org/apache/cassandra/db/Memtable.java         | 4 +---
 src/java/org/apache/cassandra/utils/Allocator.java     | 2 --
 src/java/org/apache/cassandra/utils/HeapAllocator.java | 5 -----
 src/java/org/apache/cassandra/utils/SlabAllocator.java | 8 --------
 5 files changed, 2 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a06a1383/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 830f568,6341e29..fe4efc7
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,10 -1,5 +1,11 @@@
 -1.2.11
 +2.0.2
 + * Improve memory usage of metadata min/max column names (CASSANDRA-6077)
 + * Fix thrift validation refusing row markers on CQL3 tables (CASSANDRA-6081)
 + * Fix insertion of collections with CAS (CASSANDRA-6069)
 + * Correctly send metadata on SELECT COUNT (CASSANDRA-6080)
 + * Track clients' remote addresses in ClientState (CASSANDRA-6070)
 +Merged from 1.2:
+  * Allow estimated memtable size to exceed slab allocator size (CASSANDRA-6078)
   * Start MeteredFlusher earlier to prevent OOM during CL replay (CASSANDRA-6087)
   * Avoid sending Truncate command to fat clients (CASSANDRA-6088)
   * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a06a1383/src/java/org/apache/cassandra/db/Memtable.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a06a1383/src/java/org/apache/cassandra/utils/SlabAllocator.java
----------------------------------------------------------------------


[6/9] git commit: Allow estimated memtable size to exceed slab allocator size patch by jbellis; reviewed by jasobrown for CASSANDRA-6078

Posted by jb...@apache.org.
Allow estimated memtable size to exceed slab allocator size
patch by jbellis; reviewed by jasobrown for CASSANDRA-6078


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

Branch: refs/heads/cassandra-1.2
Commit: 16f19a7cce409da4e8ab9522c29450b17879e8d9
Parents: 5464853
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Sep 24 20:46:45 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Sep 24 20:46:45 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                            | 1 +
 src/java/org/apache/cassandra/db/Memtable.java         | 4 +---
 src/java/org/apache/cassandra/utils/Allocator.java     | 2 --
 src/java/org/apache/cassandra/utils/HeapAllocator.java | 5 -----
 src/java/org/apache/cassandra/utils/SlabAllocator.java | 8 --------
 5 files changed, 2 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index a5903fa..6341e29 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.11
+ * Allow estimated memtable size to exceed slab allocator size (CASSANDRA-6078)
  * Start MeteredFlusher earlier to prevent OOM during CL replay (CASSANDRA-6087)
  * Avoid sending Truncate command to fat clients (CASSANDRA-6088)
  * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/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 cbe20fe..e39ccfe 100644
--- a/src/java/org/apache/cassandra/db/Memtable.java
+++ b/src/java/org/apache/cassandra/db/Memtable.java
@@ -141,11 +141,9 @@ public class Memtable
     {
         long estimatedSize = (long) (currentSize.get() * cfs.liveRatio);
 
-        // cap the estimate at both ends by what the allocator can tell us
+        // liveRatio is just an estimate; we can get a lower bound directly from the allocator
         if (estimatedSize < allocator.getMinimumSize())
             return allocator.getMinimumSize();
-        if (estimatedSize > allocator.getMaximumSize())
-            return allocator.getMaximumSize();
 
         return estimatedSize;
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/src/java/org/apache/cassandra/utils/Allocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/Allocator.java b/src/java/org/apache/cassandra/utils/Allocator.java
index d11815d..7134353 100644
--- a/src/java/org/apache/cassandra/utils/Allocator.java
+++ b/src/java/org/apache/cassandra/utils/Allocator.java
@@ -38,6 +38,4 @@ public abstract class Allocator
     public abstract ByteBuffer allocate(int size);
 
     public abstract long getMinimumSize();
-
-    public abstract long getMaximumSize();
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/src/java/org/apache/cassandra/utils/HeapAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/HeapAllocator.java b/src/java/org/apache/cassandra/utils/HeapAllocator.java
index efe55dd..3d19b98 100644
--- a/src/java/org/apache/cassandra/utils/HeapAllocator.java
+++ b/src/java/org/apache/cassandra/utils/HeapAllocator.java
@@ -38,9 +38,4 @@ public final class HeapAllocator extends Allocator
     {
         return 0;
     }
-
-    public long getMaximumSize()
-    {
-        return Long.MAX_VALUE;
-    }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/16f19a7c/src/java/org/apache/cassandra/utils/SlabAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/SlabAllocator.java b/src/java/org/apache/cassandra/utils/SlabAllocator.java
index 6ff66f8..af38cde 100644
--- a/src/java/org/apache/cassandra/utils/SlabAllocator.java
+++ b/src/java/org/apache/cassandra/utils/SlabAllocator.java
@@ -117,14 +117,6 @@ public class SlabAllocator extends Allocator
     }
 
     /**
-     * @return an upper bound on how much space has been allocated
-     */
-    public long getMaximumSize()
-    {
-        return unslabbed.get() + regionCount * (long)REGION_SIZE;
-    }
-
-    /**
      * A region of memory out of which allocations are sliced.
      *
      * This serves two purposes: