You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ja...@apache.org on 2013/08/13 18:53:58 UTC

[1/2] git commit: Improve offheap memcpy performance

Updated Branches:
  refs/heads/trunk c6bf9dcc8 -> 129d50dbe


Improve offheap memcpy performance

Patch by tjake; reviewed my jbellis for CASSANDRA-5884


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

Branch: refs/heads/trunk
Commit: 89fc57674e68c834564cbcfd42e158fcb0aa4d33
Parents: 9806b77
Author: Jake Luciani <ja...@apache.org>
Authored: Tue Aug 13 12:44:43 2013 -0400
Committer: Jake Luciani <ja...@apache.org>
Committed: Tue Aug 13 12:44:43 2013 -0400

----------------------------------------------------------------------
 CHANGES.txt                                       | 1 +
 src/java/org/apache/cassandra/io/util/Memory.java | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/89fc5767/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index a956048..f7e439c 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -2,6 +2,7 @@
  * Notify indexer of columns shadowed by range tombstones (CASSANDRA-5614)
  * Log Merkle tree stats (CASSANDRA-2698)
  * Switch from crc32 to adler32 for compressed sstable checksums (CASSANDRA-5862)
+ * Improve offheap memcpy performance (CASSANDRA-5884)
 
 
 2.0.0-rc2

http://git-wip-us.apache.org/repos/asf/cassandra/blob/89fc5767/src/java/org/apache/cassandra/io/util/Memory.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/Memory.java b/src/java/org/apache/cassandra/io/util/Memory.java
index 051b427..b98dded 100644
--- a/src/java/org/apache/cassandra/io/util/Memory.java
+++ b/src/java/org/apache/cassandra/io/util/Memory.java
@@ -28,6 +28,7 @@ public class Memory
 {
     private static final Unsafe unsafe = NativeAllocator.unsafe;
     private static final IAllocator allocator = DatabaseDescriptor.getoffHeapMemoryAllocator();
+    private static final long BYTE_ARRAY_BASE_OFFSET = unsafe.arrayBaseOffset(byte[].class);
 
     protected long peer;
     // size of the memory region
@@ -94,8 +95,8 @@ public class Memory
         checkPosition(memoryOffset);
         long end = memoryOffset + count;
         checkPosition(end - 1);
-        while (memoryOffset < end)
-            unsafe.putByte(peer + memoryOffset++, buffer[bufferOffset++]);
+
+        unsafe.copyMemory(buffer, BYTE_ARRAY_BASE_OFFSET, null, peer + memoryOffset, count);
     }
 
     public byte getByte(long offset)
@@ -136,8 +137,8 @@ public class Memory
         checkPosition(memoryOffset);
         long end = memoryOffset + count;
         checkPosition(end - 1);
-        while (memoryOffset < end)
-            buffer[bufferOffset++] = unsafe.getByte(peer + memoryOffset++);
+
+        unsafe.copyMemory(null, peer + memoryOffset, buffer, BYTE_ARRAY_BASE_OFFSET, count);
     }
 
     private void checkPosition(long offset)


[2/2] git commit: Merge branch 'cassandra-2.0' into trunk

Posted by ja...@apache.org.
Merge branch 'cassandra-2.0' into trunk


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

Branch: refs/heads/trunk
Commit: 129d50dbe62dbfc0ae2425faaafd73a236d56ca8
Parents: c6bf9dc 89fc576
Author: Jake Luciani <ja...@apache.org>
Authored: Tue Aug 13 12:53:37 2013 -0400
Committer: Jake Luciani <ja...@apache.org>
Committed: Tue Aug 13 12:53:37 2013 -0400

----------------------------------------------------------------------
 CHANGES.txt                                       | 1 +
 src/java/org/apache/cassandra/io/util/Memory.java | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------