You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jm...@apache.org on 2016/05/09 00:34:33 UTC
[01/10] cassandra git commit: Improve comments for SlabAllocator and
NativeAllocator
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.2 483c74533 -> ac9844b99
refs/heads/cassandra-3.0 411c56014 -> ecb4ae8da
refs/heads/cassandra-3.7 02f8725d7 -> a8a3a7338
refs/heads/trunk d9083a9c2 -> 0f0b2dfce
Improve comments for SlabAllocator and NativeAllocator
Patch by zyang; reviewed by blambov for CASSANDRA-11541
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ac9844b9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ac9844b9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ac9844b9
Branch: refs/heads/cassandra-2.2
Commit: ac9844b99decbcda5ed279203884154011cda618
Parents: 483c745
Author: Zhao Yang <zh...@worksap.co.jp>
Authored: Fri May 6 10:18:25 2016 +0800
Committer: Josh McKenzie <jo...@datastax.com>
Committed: Sun May 8 20:31:43 2016 -0400
----------------------------------------------------------------------
.../apache/cassandra/utils/memory/NativeAllocator.java | 10 ++++++++++
.../org/apache/cassandra/utils/memory/SlabAllocator.java | 6 +++---
2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ac9844b9/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java b/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
index 88846c5..98878c0 100644
--- a/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
+++ b/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
@@ -37,6 +37,16 @@ import org.apache.cassandra.db.NativeDeletedCell;
import org.apache.cassandra.db.NativeExpiringCell;
import org.apache.cassandra.utils.concurrent.OpOrder;
+/**
+ * This NativeAllocator uses global slab allocation strategy
+ * with slab size that scales exponentially from 8kb to 1Mb to
+ * serve allocation of up to 128kb.
+ * <p>
+ * </p>
+ * The slab allocation reduces heap fragmentation from small
+ * long-lived objects.
+ *
+ */
public class NativeAllocator extends MemtableAllocator
{
private final static int MAX_REGION_SIZE = 1 * 1024 * 1024;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ac9844b9/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java b/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
index 8defd25..8ffead1 100644
--- a/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
+++ b/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
@@ -31,9 +31,9 @@ import org.apache.cassandra.utils.concurrent.OpOrder;
import sun.nio.ch.DirectBuffer;
/**
- * The SlabAllocator is a bump-the-pointer allocator that allocates
- * large (2MB by default) regions and then doles them out to threads that request
- * slices into the array.
++ * The SlabAllocator is a bump-the-pointer allocator that allocates
++ * large (1MB) global regions and then doles them out to threads that
++ * request smaller sized (up to 128kb) slices into the array.
* <p></p>
* The purpose of this class is to combat heap fragmentation in long lived
* objects: by ensuring that all allocations with similar lifetimes
[09/10] cassandra git commit: Merge branch 'cassandra-3.0' into
cassandra-3.7
Posted by jm...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.7
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a8a3a733
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a8a3a733
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a8a3a733
Branch: refs/heads/trunk
Commit: a8a3a7338a8fa2380fab6ad23057ce03aa4dc68f
Parents: 02f8725 ecb4ae8
Author: Josh McKenzie <jo...@datastax.com>
Authored: Sun May 8 20:32:55 2016 -0400
Committer: Josh McKenzie <jo...@datastax.com>
Committed: Sun May 8 20:32:55 2016 -0400
----------------------------------------------------------------------
.../apache/cassandra/utils/memory/NativeAllocator.java | 10 ++++++++++
.../org/apache/cassandra/utils/memory/SlabAllocator.java | 6 +++---
2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8a3a733/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
index 6acf6c6,4857f34..5bdaf08
--- a/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
+++ b/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
@@@ -24,10 -24,22 +24,20 @@@ import java.util.concurrent.Semaphore
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.db.DecoratedKey;
-import org.apache.cassandra.db.NativeDecoratedKey;
-import org.apache.cassandra.db.rows.Row;
+import org.apache.cassandra.db.*;
+import org.apache.cassandra.db.rows.*;
import org.apache.cassandra.utils.concurrent.OpOrder;
+ /**
+ * This NativeAllocator uses global slab allocation strategy
+ * with slab size that scales exponentially from 8kb to 1Mb to
+ * serve allocation of up to 128kb.
+ * <p>
+ * </p>
+ * The slab allocation reduces heap fragmentation from small
+ * long-lived objects.
+ *
+ */
public class NativeAllocator extends MemtableAllocator
{
private final static int MAX_REGION_SIZE = 1 * 1024 * 1024;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8a3a733/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
----------------------------------------------------------------------
[10/10] cassandra git commit: Merge branch 'cassandra-3.7' into trunk
Posted by jm...@apache.org.
Merge branch 'cassandra-3.7' into trunk
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0f0b2dfc
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0f0b2dfc
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0f0b2dfc
Branch: refs/heads/trunk
Commit: 0f0b2dfce2c62612e559e32c239ad8cd2d766505
Parents: d9083a9 a8a3a73
Author: Josh McKenzie <jo...@datastax.com>
Authored: Sun May 8 20:33:02 2016 -0400
Committer: Josh McKenzie <jo...@datastax.com>
Committed: Sun May 8 20:33:02 2016 -0400
----------------------------------------------------------------------
.../apache/cassandra/utils/memory/NativeAllocator.java | 10 ++++++++++
.../org/apache/cassandra/utils/memory/SlabAllocator.java | 6 +++---
2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
[07/10] cassandra git commit: Merge branch 'cassandra-2.2' into
cassandra-3.0
Posted by jm...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ecb4ae8d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ecb4ae8d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ecb4ae8d
Branch: refs/heads/trunk
Commit: ecb4ae8daf536d030b1dea93c2cc13e1ca50219f
Parents: 411c560 ac9844b
Author: Josh McKenzie <jo...@datastax.com>
Authored: Sun May 8 20:32:44 2016 -0400
Committer: Josh McKenzie <jo...@datastax.com>
Committed: Sun May 8 20:32:44 2016 -0400
----------------------------------------------------------------------
.../apache/cassandra/utils/memory/NativeAllocator.java | 10 ++++++++++
.../org/apache/cassandra/utils/memory/SlabAllocator.java | 6 +++---
2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ecb4ae8d/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
index e5458b4,98878c0..4857f34
--- a/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
+++ b/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
@@@ -25,11 -25,28 +25,21 @@@ import java.util.concurrent.atomic.Atom
import java.util.concurrent.atomic.AtomicReference;
import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.db.Cell;
-import org.apache.cassandra.db.CounterCell;
import org.apache.cassandra.db.DecoratedKey;
-import org.apache.cassandra.db.DeletedCell;
-import org.apache.cassandra.db.ExpiringCell;
-import org.apache.cassandra.db.NativeCell;
-import org.apache.cassandra.db.NativeCounterCell;
import org.apache.cassandra.db.NativeDecoratedKey;
-import org.apache.cassandra.db.NativeDeletedCell;
-import org.apache.cassandra.db.NativeExpiringCell;
+import org.apache.cassandra.db.rows.Row;
import org.apache.cassandra.utils.concurrent.OpOrder;
+ /**
+ * This NativeAllocator uses global slab allocation strategy
+ * with slab size that scales exponentially from 8kb to 1Mb to
+ * serve allocation of up to 128kb.
+ * <p>
+ * </p>
+ * The slab allocation reduces heap fragmentation from small
+ * long-lived objects.
+ *
+ */
public class NativeAllocator extends MemtableAllocator
{
private final static int MAX_REGION_SIZE = 1 * 1024 * 1024;
[08/10] cassandra git commit: Merge branch 'cassandra-3.0' into
cassandra-3.7
Posted by jm...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.7
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a8a3a733
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a8a3a733
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a8a3a733
Branch: refs/heads/cassandra-3.7
Commit: a8a3a7338a8fa2380fab6ad23057ce03aa4dc68f
Parents: 02f8725 ecb4ae8
Author: Josh McKenzie <jo...@datastax.com>
Authored: Sun May 8 20:32:55 2016 -0400
Committer: Josh McKenzie <jo...@datastax.com>
Committed: Sun May 8 20:32:55 2016 -0400
----------------------------------------------------------------------
.../apache/cassandra/utils/memory/NativeAllocator.java | 10 ++++++++++
.../org/apache/cassandra/utils/memory/SlabAllocator.java | 6 +++---
2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8a3a733/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
index 6acf6c6,4857f34..5bdaf08
--- a/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
+++ b/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
@@@ -24,10 -24,22 +24,20 @@@ import java.util.concurrent.Semaphore
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.db.DecoratedKey;
-import org.apache.cassandra.db.NativeDecoratedKey;
-import org.apache.cassandra.db.rows.Row;
+import org.apache.cassandra.db.*;
+import org.apache.cassandra.db.rows.*;
import org.apache.cassandra.utils.concurrent.OpOrder;
+ /**
+ * This NativeAllocator uses global slab allocation strategy
+ * with slab size that scales exponentially from 8kb to 1Mb to
+ * serve allocation of up to 128kb.
+ * <p>
+ * </p>
+ * The slab allocation reduces heap fragmentation from small
+ * long-lived objects.
+ *
+ */
public class NativeAllocator extends MemtableAllocator
{
private final static int MAX_REGION_SIZE = 1 * 1024 * 1024;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8a3a733/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
----------------------------------------------------------------------
[06/10] cassandra git commit: Merge branch 'cassandra-2.2' into
cassandra-3.0
Posted by jm...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ecb4ae8d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ecb4ae8d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ecb4ae8d
Branch: refs/heads/cassandra-3.0
Commit: ecb4ae8daf536d030b1dea93c2cc13e1ca50219f
Parents: 411c560 ac9844b
Author: Josh McKenzie <jo...@datastax.com>
Authored: Sun May 8 20:32:44 2016 -0400
Committer: Josh McKenzie <jo...@datastax.com>
Committed: Sun May 8 20:32:44 2016 -0400
----------------------------------------------------------------------
.../apache/cassandra/utils/memory/NativeAllocator.java | 10 ++++++++++
.../org/apache/cassandra/utils/memory/SlabAllocator.java | 6 +++---
2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ecb4ae8d/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
index e5458b4,98878c0..4857f34
--- a/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
+++ b/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
@@@ -25,11 -25,28 +25,21 @@@ import java.util.concurrent.atomic.Atom
import java.util.concurrent.atomic.AtomicReference;
import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.db.Cell;
-import org.apache.cassandra.db.CounterCell;
import org.apache.cassandra.db.DecoratedKey;
-import org.apache.cassandra.db.DeletedCell;
-import org.apache.cassandra.db.ExpiringCell;
-import org.apache.cassandra.db.NativeCell;
-import org.apache.cassandra.db.NativeCounterCell;
import org.apache.cassandra.db.NativeDecoratedKey;
-import org.apache.cassandra.db.NativeDeletedCell;
-import org.apache.cassandra.db.NativeExpiringCell;
+import org.apache.cassandra.db.rows.Row;
import org.apache.cassandra.utils.concurrent.OpOrder;
+ /**
+ * This NativeAllocator uses global slab allocation strategy
+ * with slab size that scales exponentially from 8kb to 1Mb to
+ * serve allocation of up to 128kb.
+ * <p>
+ * </p>
+ * The slab allocation reduces heap fragmentation from small
+ * long-lived objects.
+ *
+ */
public class NativeAllocator extends MemtableAllocator
{
private final static int MAX_REGION_SIZE = 1 * 1024 * 1024;
[04/10] cassandra git commit: Improve comments for SlabAllocator and
NativeAllocator
Posted by jm...@apache.org.
Improve comments for SlabAllocator and NativeAllocator
Patch by zyang; reviewed by blambov for CASSANDRA-11541
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ac9844b9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ac9844b9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ac9844b9
Branch: refs/heads/trunk
Commit: ac9844b99decbcda5ed279203884154011cda618
Parents: 483c745
Author: Zhao Yang <zh...@worksap.co.jp>
Authored: Fri May 6 10:18:25 2016 +0800
Committer: Josh McKenzie <jo...@datastax.com>
Committed: Sun May 8 20:31:43 2016 -0400
----------------------------------------------------------------------
.../apache/cassandra/utils/memory/NativeAllocator.java | 10 ++++++++++
.../org/apache/cassandra/utils/memory/SlabAllocator.java | 6 +++---
2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ac9844b9/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java b/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
index 88846c5..98878c0 100644
--- a/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
+++ b/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
@@ -37,6 +37,16 @@ import org.apache.cassandra.db.NativeDeletedCell;
import org.apache.cassandra.db.NativeExpiringCell;
import org.apache.cassandra.utils.concurrent.OpOrder;
+/**
+ * This NativeAllocator uses global slab allocation strategy
+ * with slab size that scales exponentially from 8kb to 1Mb to
+ * serve allocation of up to 128kb.
+ * <p>
+ * </p>
+ * The slab allocation reduces heap fragmentation from small
+ * long-lived objects.
+ *
+ */
public class NativeAllocator extends MemtableAllocator
{
private final static int MAX_REGION_SIZE = 1 * 1024 * 1024;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ac9844b9/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java b/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
index 8defd25..8ffead1 100644
--- a/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
+++ b/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
@@ -31,9 +31,9 @@ import org.apache.cassandra.utils.concurrent.OpOrder;
import sun.nio.ch.DirectBuffer;
/**
- * The SlabAllocator is a bump-the-pointer allocator that allocates
- * large (2MB by default) regions and then doles them out to threads that request
- * slices into the array.
++ * The SlabAllocator is a bump-the-pointer allocator that allocates
++ * large (1MB) global regions and then doles them out to threads that
++ * request smaller sized (up to 128kb) slices into the array.
* <p></p>
* The purpose of this class is to combat heap fragmentation in long lived
* objects: by ensuring that all allocations with similar lifetimes
[05/10] cassandra git commit: Merge branch 'cassandra-2.2' into
cassandra-3.0
Posted by jm...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ecb4ae8d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ecb4ae8d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ecb4ae8d
Branch: refs/heads/cassandra-3.7
Commit: ecb4ae8daf536d030b1dea93c2cc13e1ca50219f
Parents: 411c560 ac9844b
Author: Josh McKenzie <jo...@datastax.com>
Authored: Sun May 8 20:32:44 2016 -0400
Committer: Josh McKenzie <jo...@datastax.com>
Committed: Sun May 8 20:32:44 2016 -0400
----------------------------------------------------------------------
.../apache/cassandra/utils/memory/NativeAllocator.java | 10 ++++++++++
.../org/apache/cassandra/utils/memory/SlabAllocator.java | 6 +++---
2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ecb4ae8d/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
index e5458b4,98878c0..4857f34
--- a/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
+++ b/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
@@@ -25,11 -25,28 +25,21 @@@ import java.util.concurrent.atomic.Atom
import java.util.concurrent.atomic.AtomicReference;
import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.db.Cell;
-import org.apache.cassandra.db.CounterCell;
import org.apache.cassandra.db.DecoratedKey;
-import org.apache.cassandra.db.DeletedCell;
-import org.apache.cassandra.db.ExpiringCell;
-import org.apache.cassandra.db.NativeCell;
-import org.apache.cassandra.db.NativeCounterCell;
import org.apache.cassandra.db.NativeDecoratedKey;
-import org.apache.cassandra.db.NativeDeletedCell;
-import org.apache.cassandra.db.NativeExpiringCell;
+import org.apache.cassandra.db.rows.Row;
import org.apache.cassandra.utils.concurrent.OpOrder;
+ /**
+ * This NativeAllocator uses global slab allocation strategy
+ * with slab size that scales exponentially from 8kb to 1Mb to
+ * serve allocation of up to 128kb.
+ * <p>
+ * </p>
+ * The slab allocation reduces heap fragmentation from small
+ * long-lived objects.
+ *
+ */
public class NativeAllocator extends MemtableAllocator
{
private final static int MAX_REGION_SIZE = 1 * 1024 * 1024;
[03/10] cassandra git commit: Improve comments for SlabAllocator and
NativeAllocator
Posted by jm...@apache.org.
Improve comments for SlabAllocator and NativeAllocator
Patch by zyang; reviewed by blambov for CASSANDRA-11541
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ac9844b9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ac9844b9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ac9844b9
Branch: refs/heads/cassandra-3.7
Commit: ac9844b99decbcda5ed279203884154011cda618
Parents: 483c745
Author: Zhao Yang <zh...@worksap.co.jp>
Authored: Fri May 6 10:18:25 2016 +0800
Committer: Josh McKenzie <jo...@datastax.com>
Committed: Sun May 8 20:31:43 2016 -0400
----------------------------------------------------------------------
.../apache/cassandra/utils/memory/NativeAllocator.java | 10 ++++++++++
.../org/apache/cassandra/utils/memory/SlabAllocator.java | 6 +++---
2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ac9844b9/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java b/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
index 88846c5..98878c0 100644
--- a/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
+++ b/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
@@ -37,6 +37,16 @@ import org.apache.cassandra.db.NativeDeletedCell;
import org.apache.cassandra.db.NativeExpiringCell;
import org.apache.cassandra.utils.concurrent.OpOrder;
+/**
+ * This NativeAllocator uses global slab allocation strategy
+ * with slab size that scales exponentially from 8kb to 1Mb to
+ * serve allocation of up to 128kb.
+ * <p>
+ * </p>
+ * The slab allocation reduces heap fragmentation from small
+ * long-lived objects.
+ *
+ */
public class NativeAllocator extends MemtableAllocator
{
private final static int MAX_REGION_SIZE = 1 * 1024 * 1024;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ac9844b9/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java b/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
index 8defd25..8ffead1 100644
--- a/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
+++ b/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
@@ -31,9 +31,9 @@ import org.apache.cassandra.utils.concurrent.OpOrder;
import sun.nio.ch.DirectBuffer;
/**
- * The SlabAllocator is a bump-the-pointer allocator that allocates
- * large (2MB by default) regions and then doles them out to threads that request
- * slices into the array.
++ * The SlabAllocator is a bump-the-pointer allocator that allocates
++ * large (1MB) global regions and then doles them out to threads that
++ * request smaller sized (up to 128kb) slices into the array.
* <p></p>
* The purpose of this class is to combat heap fragmentation in long lived
* objects: by ensuring that all allocations with similar lifetimes
[02/10] cassandra git commit: Improve comments for SlabAllocator and
NativeAllocator
Posted by jm...@apache.org.
Improve comments for SlabAllocator and NativeAllocator
Patch by zyang; reviewed by blambov for CASSANDRA-11541
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ac9844b9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ac9844b9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ac9844b9
Branch: refs/heads/cassandra-3.0
Commit: ac9844b99decbcda5ed279203884154011cda618
Parents: 483c745
Author: Zhao Yang <zh...@worksap.co.jp>
Authored: Fri May 6 10:18:25 2016 +0800
Committer: Josh McKenzie <jo...@datastax.com>
Committed: Sun May 8 20:31:43 2016 -0400
----------------------------------------------------------------------
.../apache/cassandra/utils/memory/NativeAllocator.java | 10 ++++++++++
.../org/apache/cassandra/utils/memory/SlabAllocator.java | 6 +++---
2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ac9844b9/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java b/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
index 88846c5..98878c0 100644
--- a/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
+++ b/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java
@@ -37,6 +37,16 @@ import org.apache.cassandra.db.NativeDeletedCell;
import org.apache.cassandra.db.NativeExpiringCell;
import org.apache.cassandra.utils.concurrent.OpOrder;
+/**
+ * This NativeAllocator uses global slab allocation strategy
+ * with slab size that scales exponentially from 8kb to 1Mb to
+ * serve allocation of up to 128kb.
+ * <p>
+ * </p>
+ * The slab allocation reduces heap fragmentation from small
+ * long-lived objects.
+ *
+ */
public class NativeAllocator extends MemtableAllocator
{
private final static int MAX_REGION_SIZE = 1 * 1024 * 1024;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ac9844b9/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java b/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
index 8defd25..8ffead1 100644
--- a/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
+++ b/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java
@@ -31,9 +31,9 @@ import org.apache.cassandra.utils.concurrent.OpOrder;
import sun.nio.ch.DirectBuffer;
/**
- * The SlabAllocator is a bump-the-pointer allocator that allocates
- * large (2MB by default) regions and then doles them out to threads that request
- * slices into the array.
++ * The SlabAllocator is a bump-the-pointer allocator that allocates
++ * large (1MB) global regions and then doles them out to threads that
++ * request smaller sized (up to 128kb) slices into the array.
* <p></p>
* The purpose of this class is to combat heap fragmentation in long lived
* objects: by ensuring that all allocations with similar lifetimes