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){