You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mnemonic.apache.org by ga...@apache.org on 2017/10/21 07:19:49 UTC
incubator-mnemonic git commit: MNEMONIC-390: Storage addressing
interface
Repository: incubator-mnemonic
Updated Branches:
refs/heads/master 21dbbb19c -> 29822230f
MNEMONIC-390: Storage addressing interface
Project: http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/commit/29822230
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/tree/29822230
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/diff/29822230
Branch: refs/heads/master
Commit: 29822230f6f0acb1e684b145896a15b1a73a597a
Parents: 21dbbb1
Author: Wang, Gang(Gary) <ga...@intel.com>
Authored: Fri Oct 20 23:37:25 2017 -0700
Committer: Wang, Gang(Gary) <ga...@intel.com>
Committed: Fri Oct 20 23:47:04 2017 -0700
----------------------------------------------------------------------
.../org/apache/mnemonic/AddressTranslator.java | 10 ++++++
.../mnemonic/NonVolatileMemAllocator.java | 33 +++++++++++--------
.../apache/mnemonic/VolatileMemAllocator.java | 33 +++++++++++--------
.../memory/VolatileMemoryAllocatorService.java | 22 +++++++++++--
.../memory/internal/JavaVMemServiceImpl.java | 14 +++++---
.../internal/JavaVMemServiceImplNGTest.java | 34 ++++++++++----------
.../memory/internal/PMemServiceImpl.java | 10 ++++--
.../memory/internal/VMemServiceImpl.java | 10 ++++--
.../memory/internal/PMallocServiceImpl.java | 10 ++++--
.../memory/internal/SysVMemServiceImpl.java | 10 ++++--
10 files changed, 129 insertions(+), 57 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/29822230/mnemonic-core/src/main/java/org/apache/mnemonic/AddressTranslator.java
----------------------------------------------------------------------
diff --git a/mnemonic-core/src/main/java/org/apache/mnemonic/AddressTranslator.java b/mnemonic-core/src/main/java/org/apache/mnemonic/AddressTranslator.java
index 2c20887..be1203a 100644
--- a/mnemonic-core/src/main/java/org/apache/mnemonic/AddressTranslator.java
+++ b/mnemonic-core/src/main/java/org/apache/mnemonic/AddressTranslator.java
@@ -44,6 +44,16 @@ public interface AddressTranslator {
long getEffectiveAddress(long addr);
/**
+ * calculate the abstract address from portable address
+ *
+ * @param addr
+ * the portable address
+ *
+ * @return the abstract address
+ */
+ long getAbstractAddress(long addr);
+
+ /**
* set address translate table
*
* @param tbl
http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/29822230/mnemonic-core/src/main/java/org/apache/mnemonic/NonVolatileMemAllocator.java
----------------------------------------------------------------------
diff --git a/mnemonic-core/src/main/java/org/apache/mnemonic/NonVolatileMemAllocator.java b/mnemonic-core/src/main/java/org/apache/mnemonic/NonVolatileMemAllocator.java
index be545f7..bae656c 100644
--- a/mnemonic-core/src/main/java/org/apache/mnemonic/NonVolatileMemAllocator.java
+++ b/mnemonic-core/src/main/java/org/apache/mnemonic/NonVolatileMemAllocator.java
@@ -30,10 +30,6 @@ import org.flowcomputing.commons.resgc.ReclaimContext;
import java.nio.ByteBuffer;
-import static org.apache.mnemonic.service.memory.MemoryServiceFeature.EXPANDABLE;
-import static org.apache.mnemonic.service.memory.MemoryServiceFeature.QUERYABLE;
-import static org.apache.mnemonic.service.memory.MemoryServiceFeature.SHRINKABLE;
-
/**
* manage a big native persistent memory pool through underlying memory service.
*
@@ -95,15 +91,15 @@ public class NonVolatileMemAllocator extends RestorableAllocator<NonVolatileMemA
*/
m_chunkcollector = new ResCollector<MemChunkHolder<NonVolatileMemAllocator>, Long>(new ResReclaim<Long>() {
@Override
- public void reclaim(ContextWrapper<Long> rctx) {
- Long mres = rctx.getRes();
+ public void reclaim(ContextWrapper<Long> cw) {
+ Long mres = cw.getRes();
// System.out.println(String.format("Reclaim: %X", mres));
boolean cb_reclaimed = false;
if (null != m_chunkreclaimer) {
cb_reclaimed = m_chunkreclaimer.reclaim(mres, null);
}
if (!cb_reclaimed) {
- m_nvmasvc.free(m_nid, mres);
+ m_nvmasvc.free(m_nid, mres, cw.getContext());
mres = null;
}
}
@@ -116,14 +112,14 @@ public class NonVolatileMemAllocator extends RestorableAllocator<NonVolatileMemA
m_bufcollector = new ResCollector<MemBufferHolder<NonVolatileMemAllocator>, ByteBuffer>(
new ResReclaim<ByteBuffer>() {
@Override
- public void reclaim(ContextWrapper<ByteBuffer> rctx) {
- ByteBuffer mres = rctx.getRes();
+ public void reclaim(ContextWrapper<ByteBuffer> cw) {
+ ByteBuffer mres = cw.getRes();
boolean cb_reclaimed = false;
if (null != m_bufferreclaimer) {
cb_reclaimed = m_bufferreclaimer.reclaim(mres, Long.valueOf(mres.capacity()));
}
if (!cb_reclaimed) {
- m_nvmasvc.destroyByteBuffer(m_nid, mres);
+ m_nvmasvc.destroyByteBuffer(m_nid, mres, cw.getContext());
mres = null;
}
}
@@ -607,6 +603,17 @@ public class NonVolatileMemAllocator extends RestorableAllocator<NonVolatileMemA
throw new AddressTranslateError("Effective Address Translate Error");
}
+ @Override
+ public long getAbstractAddress(long addr) {
+ long ret = 0L;
+ if (m_absaddr) {
+ ret = m_nvmasvc.getAbstractAddress(addr);
+ } else {
+ throw new ConfigurationException("Do not support get abstract address operation");
+ }
+ return ret;
+ }
+
/**
* get the address translate table
*
@@ -718,7 +725,7 @@ public class NonVolatileMemAllocator extends RestorableAllocator<NonVolatileMemA
*/
Queryable useQuery() {
if (null == m_querable) {
- if (m_features.contains(QUERYABLE)) {
+ if (m_features.contains(MemoryServiceFeature.QUERYABLE)) {
m_querable = new MemoryQueryAdapter();
}
}
@@ -729,7 +736,7 @@ public class NonVolatileMemAllocator extends RestorableAllocator<NonVolatileMemA
public long expand(long size) {
long ret = 0L;
if (null != m_features) {
- if (m_features.contains(EXPANDABLE)) {
+ if (m_features.contains(MemoryServiceFeature.EXPANDABLE)) {
ret = m_nvmasvc.adjustCapacity(m_nid, size);
} else {
throw new ConfigurationException("Do not support expand operation");
@@ -744,7 +751,7 @@ public class NonVolatileMemAllocator extends RestorableAllocator<NonVolatileMemA
public long shrink(long size) {
long ret = 0L;
if (null != m_features) {
- if (m_features.contains(SHRINKABLE)) {
+ if (m_features.contains(MemoryServiceFeature.SHRINKABLE)) {
ret = m_nvmasvc.adjustCapacity(m_nid, (-1) * size);
} else {
throw new ConfigurationException("Do not support shrink operation");
http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/29822230/mnemonic-core/src/main/java/org/apache/mnemonic/VolatileMemAllocator.java
----------------------------------------------------------------------
diff --git a/mnemonic-core/src/main/java/org/apache/mnemonic/VolatileMemAllocator.java b/mnemonic-core/src/main/java/org/apache/mnemonic/VolatileMemAllocator.java
index b78f2f3..a79e18a 100644
--- a/mnemonic-core/src/main/java/org/apache/mnemonic/VolatileMemAllocator.java
+++ b/mnemonic-core/src/main/java/org/apache/mnemonic/VolatileMemAllocator.java
@@ -30,10 +30,6 @@ import org.flowcomputing.commons.resgc.ReclaimContext;
import java.nio.ByteBuffer;
-import static org.apache.mnemonic.service.memory.MemoryServiceFeature.EXPANDABLE;
-import static org.apache.mnemonic.service.memory.MemoryServiceFeature.QUERYABLE;
-import static org.apache.mnemonic.service.memory.MemoryServiceFeature.SHRINKABLE;
-
/**
* manage a big native memory pool through underlying memory service.
*
@@ -86,14 +82,14 @@ public class VolatileMemAllocator extends RestorableAllocator<VolatileMemAllocat
*/
m_bufcollector = new ResCollector<MemBufferHolder<VolatileMemAllocator>, ByteBuffer>(new ResReclaim<ByteBuffer>() {
@Override
- public void reclaim(ContextWrapper<ByteBuffer> rctx) {
- ByteBuffer mres = rctx.getRes();
+ public void reclaim(ContextWrapper<ByteBuffer> cw) {
+ ByteBuffer mres = cw.getRes();
boolean cb_reclaimed = false;
if (null != m_bufferreclaimer) {
cb_reclaimed = m_bufferreclaimer.reclaim(mres, Long.valueOf(mres.capacity()));
}
if (!cb_reclaimed) {
- m_vmasvc.destroyByteBuffer(m_nid, mres);
+ m_vmasvc.destroyByteBuffer(m_nid, mres, cw.getContext());
mres = null;
}
}
@@ -105,15 +101,15 @@ public class VolatileMemAllocator extends RestorableAllocator<VolatileMemAllocat
*/
m_chunkcollector = new ResCollector<MemChunkHolder<VolatileMemAllocator>, Long>(new ResReclaim<Long>() {
@Override
- public void reclaim(ContextWrapper<Long> rctx) {
- Long mres = rctx.getRes();
+ public void reclaim(ContextWrapper<Long> cw) {
+ Long mres = cw.getRes();
// System.out.println(String.format("Reclaim: %X", mres));
boolean cb_reclaimed = false;
if (null != m_chunkreclaimer) {
cb_reclaimed = m_chunkreclaimer.reclaim(mres, null);
}
if (!cb_reclaimed) {
- m_vmasvc.free(m_nid, mres);
+ m_vmasvc.free(m_nid, mres, cw.getContext());
mres = null;
}
}
@@ -151,7 +147,7 @@ public class VolatileMemAllocator extends RestorableAllocator<VolatileMemAllocat
public long expand(long size) {
long ret = 0L;
if (null != m_features) {
- if (m_features.contains(EXPANDABLE)) {
+ if (m_features.contains(MemoryServiceFeature.EXPANDABLE)) {
ret = m_vmasvc.adjustCapacity(m_nid, size);
} else {
throw new ConfigurationException("Do not support expand operation");
@@ -166,7 +162,7 @@ public class VolatileMemAllocator extends RestorableAllocator<VolatileMemAllocat
public long shrink(long size) {
long ret = 0L;
if (null != m_features) {
- if (m_features.contains(SHRINKABLE)) {
+ if (m_features.contains(MemoryServiceFeature.SHRINKABLE)) {
ret = m_vmasvc.adjustCapacity(m_nid, (-1) * size);
} else {
throw new ConfigurationException("Do not support shrink operation");
@@ -539,6 +535,17 @@ public class VolatileMemAllocator extends RestorableAllocator<VolatileMemAllocat
throw new AddressTranslateError("Effective Address Translate Error");
}
+ @Override
+ public long getAbstractAddress(long addr) {
+ long ret = 0L;
+ if (m_absaddr) {
+ ret = m_vmasvc.getAbstractAddress(addr);
+ } else {
+ throw new ConfigurationException("Do not support get abstract address operation");
+ }
+ return ret;
+ }
+
/**
* get the address translate table
*
@@ -651,7 +658,7 @@ public class VolatileMemAllocator extends RestorableAllocator<VolatileMemAllocat
*/
Queryable useQuery() {
if (null == m_querable) {
- if (m_features.contains(QUERYABLE)) {
+ if (m_features.contains(MemoryServiceFeature.QUERYABLE)) {
m_querable = new MemoryQueryAdapter();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/29822230/mnemonic-core/src/main/java/org/apache/mnemonic/service/memory/VolatileMemoryAllocatorService.java
----------------------------------------------------------------------
diff --git a/mnemonic-core/src/main/java/org/apache/mnemonic/service/memory/VolatileMemoryAllocatorService.java b/mnemonic-core/src/main/java/org/apache/mnemonic/service/memory/VolatileMemoryAllocatorService.java
index 1b3f9bf..72c53bc 100644
--- a/mnemonic-core/src/main/java/org/apache/mnemonic/service/memory/VolatileMemoryAllocatorService.java
+++ b/mnemonic-core/src/main/java/org/apache/mnemonic/service/memory/VolatileMemoryAllocatorService.java
@@ -17,6 +17,8 @@
package org.apache.mnemonic.service.memory;
+import org.flowcomputing.commons.resgc.ReclaimContext;
+
import java.nio.ByteBuffer;
import java.util.Set;
@@ -227,8 +229,11 @@ public interface VolatileMemoryAllocatorService extends QueryableService {
*
* @param addr
* the address of allocated memory block.
+ *
+ * @param rctx
+ * the reclaim context.
*/
- void free(long id, long addr);
+ void free(long id, long addr, ReclaimContext rctx);
/**
* create a ByteBuffer object which backed buffer is coming from backed native
@@ -272,8 +277,11 @@ public interface VolatileMemoryAllocatorService extends QueryableService {
*
* @param bytebuf
* the specified ByteBuffer object to be destroyed
+ *
+ * @param rctx
+ * the reclaim context.
*/
- void destroyByteBuffer(long id, ByteBuffer bytebuf);
+ void destroyByteBuffer(long id, ByteBuffer bytebuf, ReclaimContext rctx);
/**
* begin a transaction
@@ -305,4 +313,14 @@ public interface VolatileMemoryAllocatorService extends QueryableService {
*/
Set<MemoryServiceFeature> getFeatures();
+ /**
+ * calculate the abstract address from portable address
+ *
+ * @param addr
+ * the portable address
+ *
+ * @return the abstract address
+ */
+ long getAbstractAddress(long addr);
+
}
http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/29822230/mnemonic-memory-services/mnemonic-java-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/JavaVMemServiceImpl.java
----------------------------------------------------------------------
diff --git a/mnemonic-memory-services/mnemonic-java-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/JavaVMemServiceImpl.java b/mnemonic-memory-services/mnemonic-java-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/JavaVMemServiceImpl.java
index 8d6e959..d98d04b 100644
--- a/mnemonic-memory-services/mnemonic-java-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/JavaVMemServiceImpl.java
+++ b/mnemonic-memory-services/mnemonic-java-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/JavaVMemServiceImpl.java
@@ -24,6 +24,7 @@ import org.apache.mnemonic.query.memory.ResultSet;
import org.apache.mnemonic.service.computing.ValueInfo;
import org.apache.mnemonic.service.memory.MemoryServiceFeature;
import org.apache.mnemonic.service.memory.VolatileMemoryAllocatorService;
+import org.flowcomputing.commons.resgc.ReclaimContext;
import java.io.File;
import java.io.IOException;
@@ -211,13 +212,13 @@ public class JavaVMemServiceImpl implements VolatileMemoryAllocatorService {
originalBytebuf.rewind();
newBytebuf.rewind();
newBytebuf.put(originalBytebuf);
- destroyByteBuffer(id, originalBytebuf);
+ destroyByteBuffer(id, originalBytebuf, null);
handler = getByteBufferHandler(id, newBytebuf);
return handler;
}
@Override
- public void free(long id, long addr) {
+ public void free(long id, long addr, ReclaimContext rctx) {
MemoryInfo mi = this.getMemPools().get((int)id);
FileChannel channel = mi.getFileChannel();
int startIdx, requiredblocks, size;
@@ -273,12 +274,12 @@ public class JavaVMemServiceImpl implements VolatileMemoryAllocatorService {
ByteBuffer bb = createByteBuffer(id, size);
bytebuf.rewind();
bb.put(bytebuf);
- destroyByteBuffer(id, bytebuf);
+ destroyByteBuffer(id, bytebuf, null);
return bb;
}
@Override
- public void destroyByteBuffer(long id, ByteBuffer bytebuf) {
+ public void destroyByteBuffer(long id, ByteBuffer bytebuf, ReclaimContext rctx) {
MemoryInfo mi = this.getMemPools().get((int)id);
FileChannel channel = mi.getFileChannel();
int startIdx, requiredblocks;
@@ -390,6 +391,11 @@ public class JavaVMemServiceImpl implements VolatileMemoryAllocatorService {
return null;
}
+ @Override
+ public long getAbstractAddress(long addr) {
+ throw new UnsupportedOperationException("Unrsupported to get abstract address");
+ }
+
public ArrayList<MemoryInfo> getMemPools() {
return this.mem_pools;
}
http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/29822230/mnemonic-memory-services/mnemonic-java-vmem-service/src/test/java/org/apache/mnemonic/service/memory/internal/JavaVMemServiceImplNGTest.java
----------------------------------------------------------------------
diff --git a/mnemonic-memory-services/mnemonic-java-vmem-service/src/test/java/org/apache/mnemonic/service/memory/internal/JavaVMemServiceImplNGTest.java b/mnemonic-memory-services/mnemonic-java-vmem-service/src/test/java/org/apache/mnemonic/service/memory/internal/JavaVMemServiceImplNGTest.java
index e633218..cb5b140 100644
--- a/mnemonic-memory-services/mnemonic-java-vmem-service/src/test/java/org/apache/mnemonic/service/memory/internal/JavaVMemServiceImplNGTest.java
+++ b/mnemonic-memory-services/mnemonic-java-vmem-service/src/test/java/org/apache/mnemonic/service/memory/internal/JavaVMemServiceImplNGTest.java
@@ -219,7 +219,7 @@ public class JavaVMemServiceImplNGTest {
assertTrue(blockInfo.getBufferBlockChunksMap().size() == 10 * 1024 * 1024 / 512);
assertTrue(blockInfo.getBufferBlockChunksMap().get(0) == true);
assertTrue(blockInfo.getBufferBlockChunksMap().get(1) == false);
- vms.destroyByteBuffer(memPool, bytebuffer);
+ vms.destroyByteBuffer(memPool, bytebuffer, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
@@ -243,7 +243,7 @@ public class JavaVMemServiceImplNGTest {
assertTrue(blockInfo.getBufferBlockChunksMap().size() == 10 * 1024 * 1024 / 512);
assertTrue(blockInfo.getBufferBlockChunksMap().get(0) == true);
assertTrue(blockInfo.getBufferBlockChunksMap().get(1) == false);
- vms.destroyByteBuffer(memPool, bytebuffer);
+ vms.destroyByteBuffer(memPool, bytebuffer, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
@@ -269,7 +269,7 @@ public class JavaVMemServiceImplNGTest {
assertTrue(blockInfo.getBufferBlockChunksMap().get(1) == true);
assertTrue(blockInfo.getBufferBlockChunksMap().get(2) == true);
assertTrue(blockInfo.getBufferBlockChunksMap().get(3) == false);
- vms.destroyByteBuffer(memPool, bytebuffer);
+ vms.destroyByteBuffer(memPool, bytebuffer, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
@@ -293,7 +293,7 @@ public class JavaVMemServiceImplNGTest {
assertTrue(blockInfo.getBufferBlockChunksMap().size() == 10 * 1024 * 1024 / 512);
assertTrue(blockInfo.getBufferBlockChunksMap().get(0) == true);
assertTrue(blockInfo.getBufferBlockChunksMap().get(10 * 1024 * 1024 / 512 - 1) == true);
- vms.destroyByteBuffer(memPool, bytebuffer);
+ vms.destroyByteBuffer(memPool, bytebuffer, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
@@ -331,8 +331,8 @@ public class JavaVMemServiceImplNGTest {
}
assertTrue(keys.get(0) != keys.get(1));
- vms.destroyByteBuffer(memPool, bytebuffer1);
- vms.destroyByteBuffer(memPool, bytebuffer2);
+ vms.destroyByteBuffer(memPool, bytebuffer1, null);
+ vms.destroyByteBuffer(memPool, bytebuffer2, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
@@ -369,7 +369,7 @@ public class JavaVMemServiceImplNGTest {
assertTrue(blocksMap.get(10 * 1024 * 1024 / 512 - 1) == false);
assertTrue(blockInfo.getChunkSizeMap().size() == 1);
- vms.destroyByteBuffer(memPool, bytebuffer1);
+ vms.destroyByteBuffer(memPool, bytebuffer1, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
@@ -392,12 +392,12 @@ public class JavaVMemServiceImplNGTest {
ByteBuffer bytebuffer2 = vms.createByteBuffer(memPool, 10 * 1024 * 1024 - 1024);
// Destroy bytebuffer2 first, then destroy bytebuffer1
- vms.destroyByteBuffer(memPool, bytebuffer2);
+ vms.destroyByteBuffer(memPool, bytebuffer2, null);
assertTrue(blockInfo.getChunkSizeMap().size() == 1);
assertTrue(blockInfo.getBufferBlockChunksMap().get(2) == false);
assertTrue(blockInfo.getBufferBlockChunksMap().get(10 * 1024 * 1024 / 512 - 1) == false);
- vms.destroyByteBuffer(memPool, bytebuffer1);
+ vms.destroyByteBuffer(memPool, bytebuffer1, null);
assertTrue(blockInfo.getChunkSizeMap().size() == 0);
assertTrue(blockInfo.getBufferBlockChunksMap().get(0) == false);
assertTrue(blockInfo.getBufferBlockChunksMap().get(1) == false);
@@ -430,7 +430,7 @@ public class JavaVMemServiceImplNGTest {
Assert.assertEquals(bytebuffer2.get(i), (byte)i);
}
- vms.destroyByteBuffer(memPool, bytebuffer2);
+ vms.destroyByteBuffer(memPool, bytebuffer2, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
@@ -453,7 +453,7 @@ public class JavaVMemServiceImplNGTest {
assertTrue(blockInfo.getBufferBlockBaseAddress() > 0);
ByteBuffer bb = vms.retrieveByteBuffer(memPool, blockInfo.getBufferBlockBaseAddress());
Assert.assertEquals(bb, bytebuffer);
- vms.destroyByteBuffer(memPool, bytebuffer);
+ vms.destroyByteBuffer(memPool, bytebuffer, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
@@ -476,7 +476,7 @@ public class JavaVMemServiceImplNGTest {
assertTrue(blockInfo.getBufferBlockBaseAddress() > 0);
long size = vms.retrieveSize(memPool, blockInfo.getBufferBlockBaseAddress());
Assert.assertEquals((int)size, 512);
- vms.destroyByteBuffer(memPool, bytebuffer);
+ vms.destroyByteBuffer(memPool, bytebuffer, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
@@ -499,7 +499,7 @@ public class JavaVMemServiceImplNGTest {
assertTrue(blockInfo.getBufferBlockBaseAddress() > 0);
long handler = vms.getByteBufferHandler(memPool, bytebuffer);
Assert.assertEquals(handler, blockInfo.getBufferBlockBaseAddress());
- vms.destroyByteBuffer(memPool, bytebuffer);
+ vms.destroyByteBuffer(memPool, bytebuffer, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
@@ -524,7 +524,7 @@ public class JavaVMemServiceImplNGTest {
for (int i = 0; i < 513; i++) {
Assert.assertEquals(bb.get(i), (byte)0); //initiate to zero regardless of whether initzero = false
}
- vms.destroyByteBuffer(memPool, bb);
+ vms.destroyByteBuffer(memPool, bb, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
@@ -549,7 +549,7 @@ public class JavaVMemServiceImplNGTest {
for (int i = 0; i < bb.capacity(); i++) {
Assert.assertEquals(bb.get(i), (byte)0);
}
- vms.destroyByteBuffer(memPool, bb);
+ vms.destroyByteBuffer(memPool, bb, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
@@ -575,7 +575,7 @@ public class JavaVMemServiceImplNGTest {
for (int i = 0; i < bb.capacity(); i++) {
Assert.assertEquals(bb.get(i), (byte)0);
}
- vms.destroyByteBuffer(memPool, bb);
+ vms.destroyByteBuffer(memPool, bb, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
@@ -602,7 +602,7 @@ public class JavaVMemServiceImplNGTest {
for (int i = 0; i < bb.capacity(); i++) {
Assert.assertEquals(bb.get(i), (byte)0);
}
- vms.destroyByteBuffer(memPool, bb);
+ vms.destroyByteBuffer(memPool, bb, null);
vms.close(memPool);
Files.delete(Paths.get(dest));
}
http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/29822230/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/PMemServiceImpl.java
----------------------------------------------------------------------
diff --git a/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/PMemServiceImpl.java b/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/PMemServiceImpl.java
index b6c69b0..ce61e90 100644
--- a/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/PMemServiceImpl.java
+++ b/mnemonic-memory-services/mnemonic-nvml-pmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/PMemServiceImpl.java
@@ -23,6 +23,7 @@ import org.apache.mnemonic.service.computing.ValueInfo;
import org.apache.mnemonic.service.memory.MemoryServiceFeature;
import org.apache.mnemonic.service.memory.NonVolatileMemoryAllocatorService;
import org.flowcomputing.commons.primitives.NativeLibraryLoader;
+import org.flowcomputing.commons.resgc.ReclaimContext;
import java.nio.ByteBuffer;
import java.util.HashSet;
@@ -78,7 +79,7 @@ public class PMemServiceImpl implements NonVolatileMemoryAllocatorService {
}
@Override
- public void free(long id, long addr) {
+ public void free(long id, long addr, ReclaimContext rctx) {
nfree(id, addr);
}
@@ -93,7 +94,7 @@ public class PMemServiceImpl implements NonVolatileMemoryAllocatorService {
}
@Override
- public void destroyByteBuffer(long id, ByteBuffer bytebuf) {
+ public void destroyByteBuffer(long id, ByteBuffer bytebuf, ReclaimContext rctx) {
ndestroyByteBuffer(id, bytebuf);
}
@@ -175,6 +176,11 @@ public class PMemServiceImpl implements NonVolatileMemoryAllocatorService {
return ret;
}
+ @Override
+ public long getAbstractAddress(long addr) {
+ throw new UnsupportedOperationException("Unrsupported to get abstract address");
+ }
+
protected native long ninit(long capacity, String uri, boolean isnew);
protected native void nclose(long id);
http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/29822230/mnemonic-memory-services/mnemonic-nvml-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/VMemServiceImpl.java
----------------------------------------------------------------------
diff --git a/mnemonic-memory-services/mnemonic-nvml-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/VMemServiceImpl.java b/mnemonic-memory-services/mnemonic-nvml-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/VMemServiceImpl.java
index 6c88ed6..eb823b3 100644
--- a/mnemonic-memory-services/mnemonic-nvml-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/VMemServiceImpl.java
+++ b/mnemonic-memory-services/mnemonic-nvml-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/VMemServiceImpl.java
@@ -23,6 +23,7 @@ import org.apache.mnemonic.service.computing.ValueInfo;
import org.apache.mnemonic.service.memory.MemoryServiceFeature;
import org.apache.mnemonic.service.memory.VolatileMemoryAllocatorService;
import org.flowcomputing.commons.primitives.NativeLibraryLoader;
+import org.flowcomputing.commons.resgc.ReclaimContext;
import java.nio.ByteBuffer;
import java.util.Collections;
@@ -85,7 +86,7 @@ public class VMemServiceImpl implements VolatileMemoryAllocatorService {
}
@Override
- public void free(long id, long addr) {
+ public void free(long id, long addr, ReclaimContext rctx) {
nfree(id, addr);
}
@@ -100,7 +101,7 @@ public class VMemServiceImpl implements VolatileMemoryAllocatorService {
}
@Override
- public void destroyByteBuffer(long id, ByteBuffer bytebuf) {
+ public void destroyByteBuffer(long id, ByteBuffer bytebuf, ReclaimContext rctx) {
ndestroyByteBuffer(id, bytebuf);
}
@@ -167,6 +168,11 @@ public class VMemServiceImpl implements VolatileMemoryAllocatorService {
return ret;
}
+ @Override
+ public long getAbstractAddress(long addr) {
+ throw new UnsupportedOperationException("Unrsupported to get abstract address");
+ }
+
protected native long ninit(long capacity, String uri, boolean isnew);
protected native void nclose(long id);
http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/29822230/mnemonic-memory-services/mnemonic-pmalloc-service/src/main/java/org/apache/mnemonic/service/memory/internal/PMallocServiceImpl.java
----------------------------------------------------------------------
diff --git a/mnemonic-memory-services/mnemonic-pmalloc-service/src/main/java/org/apache/mnemonic/service/memory/internal/PMallocServiceImpl.java b/mnemonic-memory-services/mnemonic-pmalloc-service/src/main/java/org/apache/mnemonic/service/memory/internal/PMallocServiceImpl.java
index e6c6165..b83d49c 100644
--- a/mnemonic-memory-services/mnemonic-pmalloc-service/src/main/java/org/apache/mnemonic/service/memory/internal/PMallocServiceImpl.java
+++ b/mnemonic-memory-services/mnemonic-pmalloc-service/src/main/java/org/apache/mnemonic/service/memory/internal/PMallocServiceImpl.java
@@ -23,6 +23,7 @@ import org.apache.mnemonic.service.computing.ValueInfo;
import org.apache.mnemonic.service.memory.MemoryServiceFeature;
import org.apache.mnemonic.service.memory.NonVolatileMemoryAllocatorService;
import org.flowcomputing.commons.primitives.NativeLibraryLoader;
+import org.flowcomputing.commons.resgc.ReclaimContext;
import java.nio.ByteBuffer;
import java.util.HashSet;
@@ -78,7 +79,7 @@ public class PMallocServiceImpl implements NonVolatileMemoryAllocatorService {
}
@Override
- public void free(long id, long addr) {
+ public void free(long id, long addr, ReclaimContext rctx) {
nfree(id, addr);
}
@@ -93,7 +94,7 @@ public class PMallocServiceImpl implements NonVolatileMemoryAllocatorService {
}
@Override
- public void destroyByteBuffer(long id, ByteBuffer bytebuf) {
+ public void destroyByteBuffer(long id, ByteBuffer bytebuf, ReclaimContext rctx) {
ndestroyByteBuffer(id, bytebuf);
}
@@ -175,6 +176,11 @@ public class PMallocServiceImpl implements NonVolatileMemoryAllocatorService {
return ret;
}
+ @Override
+ public long getAbstractAddress(long addr) {
+ throw new UnsupportedOperationException("Unrsupported to get abstract address");
+ }
+
protected native long ninit(long capacity, String uri, boolean isnew);
protected native void nclose(long id);
http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/29822230/mnemonic-memory-services/mnemonic-sys-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/SysVMemServiceImpl.java
----------------------------------------------------------------------
diff --git a/mnemonic-memory-services/mnemonic-sys-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/SysVMemServiceImpl.java b/mnemonic-memory-services/mnemonic-sys-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/SysVMemServiceImpl.java
index 5b26008..73a3e59 100644
--- a/mnemonic-memory-services/mnemonic-sys-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/SysVMemServiceImpl.java
+++ b/mnemonic-memory-services/mnemonic-sys-vmem-service/src/main/java/org/apache/mnemonic/service/memory/internal/SysVMemServiceImpl.java
@@ -23,6 +23,7 @@ import org.apache.mnemonic.service.computing.ValueInfo;
import org.apache.mnemonic.service.memory.MemoryServiceFeature;
import org.apache.mnemonic.service.memory.VolatileMemoryAllocatorService;
import org.flowcomputing.commons.primitives.NativeLibraryLoader;
+import org.flowcomputing.commons.resgc.ReclaimContext;
import java.nio.ByteBuffer;
import java.util.Collections;
@@ -85,7 +86,7 @@ public class SysVMemServiceImpl implements VolatileMemoryAllocatorService {
}
@Override
- public void free(long id, long addr) {
+ public void free(long id, long addr, ReclaimContext rctx) {
nfree(id, addr);
}
@@ -100,7 +101,7 @@ public class SysVMemServiceImpl implements VolatileMemoryAllocatorService {
}
@Override
- public void destroyByteBuffer(long id, ByteBuffer bytebuf) {
+ public void destroyByteBuffer(long id, ByteBuffer bytebuf, ReclaimContext rctx) {
ndestroyByteBuffer(id, bytebuf);
}
@@ -167,6 +168,11 @@ public class SysVMemServiceImpl implements VolatileMemoryAllocatorService {
return ret;
}
+ @Override
+ public long getAbstractAddress(long addr) {
+ throw new UnsupportedOperationException("Unrsupported to get abstract address");
+ }
+
protected native long ninit(long capacity, String uri, boolean isnew);
protected native void nclose(long id);