You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@crail.apache.org by as...@apache.org on 2018/02/28 09:51:46 UTC

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

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 <ps...@apache.org>
Signed-off-by: Adrian Schuepbach <as...@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 <ps...@apache.org>
Authored: Wed Feb 28 09:41:47 2018 +0100
Committer: Adrian Schuepbach <dr...@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){