Repository: incubator-crail
Updated Branches:
  refs/heads/master 8f812810f -> baab8d06e


Fixes issue with local short circuit (memcpy) path in the RDMA storage
tier
- mmaped buffers were previously indexed with wrong LBA in
  RdmaStorageLocalEndpoint

This fixes the CRAIL-3 JIRA ticket
https://issues.apache.org/jira/browse/CRAIL-3

Close #8

Signed-off-by: Patrick Stuedi <pstu...@apache.org>
Signed-off-by: Adrian Schuepbach <a...@apache.org>


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

Branch: refs/heads/master
Commit: baab8d06e4237e039dd51ba94178a09dc7ce8c6f
Parents: 8f81281
Author: Patrick Stuedi <pstu...@apache.org>
Authored: Wed Feb 28 09:41:47 2018 +0100
Committer: Adrian Schuepbach <d...@zurich.ibm.com>
Committed: Wed Feb 28 10:46:44 2018 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/crail/conf/CrailConstants.java | 2 +-
 .../crail/storage/rdma/client/RdmaStorageLocalEndpoint.java | 9 ++++-----
 2 files changed, 5 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-crail/blob/baab8d06/client/src/main/java/org/apache/crail/conf/CrailConstants.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/crail/conf/CrailConstants.java 
b/client/src/main/java/org/apache/crail/conf/CrailConstants.java
index 4536809..4628906 100644
--- a/client/src/main/java/org/apache/crail/conf/CrailConstants.java
+++ b/client/src/main/java/org/apache/crail/conf/CrailConstants.java
@@ -28,7 +28,7 @@ public class CrailConstants {
        private static final Logger LOG = CrailUtils.getLogger();
        
        public static final String VERSION_KEY = "crail.version";
-       public static int VERSION = 3003;
+       public static int VERSION = 3004;
        
        public static final String DIRECTORY_DEPTH_KEY = "crail.directorydepth";
        public static int DIRECTORY_DEPTH = 16;

http://git-wip-us.apache.org/repos/asf/incubator-crail/blob/baab8d06/storage-rdma/src/main/java/org/apache/crail/storage/rdma/client/RdmaStorageLocalEndpoint.java
----------------------------------------------------------------------
diff --git 
a/storage-rdma/src/main/java/org/apache/crail/storage/rdma/client/RdmaStorageLocalEndpoint.java
 
b/storage-rdma/src/main/java/org/apache/crail/storage/rdma/client/RdmaStorageLocalEndpoint.java
index 8fe1a19..bceed1f 100644
--- 
a/storage-rdma/src/main/java/org/apache/crail/storage/rdma/client/RdmaStorageLocalEndpoint.java
+++ 
b/storage-rdma/src/main/java/org/apache/crail/storage/rdma/client/RdmaStorageLocalEndpoint.java
@@ -61,11 +61,10 @@ public class RdmaStorageLocalEndpoint implements 
StorageEndpoint {
                this.address = datanodeAddr;
                this.bufferMap = new ConcurrentHashMap<Long, CrailBuffer>();
                this.unsafe = getUnsafe();
-               long lba = 0;
                for (File dataFile : dataDir.listFiles()) {
-                       MappedByteBuffer mappedBuffer = mmap(dataFile);
-                       bufferMap.put(lba, OffHeapBuffer.wrap(mappedBuffer));
-                       lba += mappedBuffer.capacity();
+                       long lba = Long.parseLong(dataFile.getName());
+                       OffHeapBuffer offHeapBuffer = 
OffHeapBuffer.wrap(mmap(dataFile));
+                       bufferMap.put(lba, offHeapBuffer);
                }                               
        }
 
@@ -134,7 +133,7 @@ public class RdmaStorageLocalEndpoint implements 
StorageEndpoint {
        }
        
        private static long getAlignedLba(long remoteLba){
-               return (remoteLba / RdmaConstants.STORAGE_RDMA_ALLOCATION_SIZE) 
* RdmaConstants.STORAGE_RDMA_ALLOCATION_SIZE;
+               return remoteLba / RdmaConstants.STORAGE_RDMA_ALLOCATION_SIZE;
        }
        
        private static long getLbaOffset(long remoteLba){

Reply via email to