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/09/28 21:51:51 UTC

incubator-mnemonic git commit: MNEMONIC-379: Identify the ADMA feature that is supported by memory service

Repository: incubator-mnemonic
Updated Branches:
  refs/heads/master e767d0c26 -> 50e2a574b


MNEMONIC-379: Identify the ADMA feature that is supported by memory service


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

Branch: refs/heads/master
Commit: 50e2a574b7eff8690c1a32435676bad7d556f359
Parents: e767d0c
Author: Wang, Gang(Gary) <ga...@intel.com>
Authored: Thu Sep 28 14:51:25 2017 -0700
Committer: Wang, Gang(Gary) <ga...@intel.com>
Committed: Thu Sep 28 14:51:25 2017 -0700

----------------------------------------------------------------------
 .../main/java/org/apache/mnemonic/CommonAllocator.java | 13 +++++++++++--
 .../org/apache/mnemonic/NonVolatileMemAllocator.java   |  3 +--
 .../java/org/apache/mnemonic/VolatileMemAllocator.java |  3 +--
 .../mnemonic/service/memory/MemoryServiceFeature.java  |  3 ++-
 4 files changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/50e2a574/mnemonic-core/src/main/java/org/apache/mnemonic/CommonAllocator.java
----------------------------------------------------------------------
diff --git a/mnemonic-core/src/main/java/org/apache/mnemonic/CommonAllocator.java b/mnemonic-core/src/main/java/org/apache/mnemonic/CommonAllocator.java
index 643704c..3ca8a7b 100644
--- a/mnemonic-core/src/main/java/org/apache/mnemonic/CommonAllocator.java
+++ b/mnemonic-core/src/main/java/org/apache/mnemonic/CommonAllocator.java
@@ -17,10 +17,12 @@
 
 package org.apache.mnemonic;
 
-import java.nio.ByteBuffer;
-
+import org.apache.mnemonic.service.memory.MemoryServiceFeature;
 import org.flowcomputing.commons.resgc.ResCollector;
 
+import java.nio.ByteBuffer;
+import java.util.Set;
+
 /**
  * an abstract common class for memory allocator to provide common
  * functionalities.
@@ -34,6 +36,13 @@ public abstract class CommonAllocator<A extends CommonAllocator<A>> implements A
   protected ResCollector<MemChunkHolder<A>, Long> m_chunkcollector = null;
   protected ResCollector<MemBufferHolder<A>, ByteBuffer> m_bufcollector = null;
 
+  protected Set<MemoryServiceFeature> m_features = null;
+  protected boolean m_absaddr = false;
+
+  public boolean useAbstractAddressing() {
+    return m_absaddr;
+  }
+
   /**
    * set a reclaimer to reclaim memory buffer
    * 

http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/50e2a574/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 ca466b3..d81dabb 100644
--- a/mnemonic-core/src/main/java/org/apache/mnemonic/NonVolatileMemAllocator.java
+++ b/mnemonic-core/src/main/java/org/apache/mnemonic/NonVolatileMemAllocator.java
@@ -27,7 +27,6 @@ import org.flowcomputing.commons.resgc.ResCollector;
 import org.flowcomputing.commons.resgc.ResReclaim;
 
 import java.nio.ByteBuffer;
-import java.util.Set;
 
 import static org.apache.mnemonic.service.memory.MemoryServiceFeature.QUERYABLE;
 
@@ -45,7 +44,6 @@ public class NonVolatileMemAllocator extends RestorableAllocator<NonVolatileMemA
   private long[][] m_ttable;
   private NonVolatileMemoryAllocatorService m_nvmasvc = null;
   private Queryable m_querable = null;
-  private Set<MemoryServiceFeature> m_features = null;
 
   /**
    * Constructor, it initializes and allocate a memory pool from specified uri
@@ -74,6 +72,7 @@ public class NonVolatileMemAllocator extends RestorableAllocator<NonVolatileMemA
     if (!m_features.contains(MemoryServiceFeature.NONVOLATILE)) {
       throw new ConfigurationException("The specified memory service does not support non-volatile feature");
     }
+    m_absaddr = m_features.contains(MemoryServiceFeature.ABSTRACTADDRESSING);
     if (isnew && capacity <= 0) {
       throw new IllegalArgumentException("NonVolatileMemAllocator cannot be initialized with capacity <= 0.");
     }

http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/50e2a574/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 dbe06db..7fa493c 100644
--- a/mnemonic-core/src/main/java/org/apache/mnemonic/VolatileMemAllocator.java
+++ b/mnemonic-core/src/main/java/org/apache/mnemonic/VolatileMemAllocator.java
@@ -27,7 +27,6 @@ import org.flowcomputing.commons.resgc.ResCollector;
 import org.flowcomputing.commons.resgc.ResReclaim;
 
 import java.nio.ByteBuffer;
-import java.util.Set;
 
 import static org.apache.mnemonic.service.memory.MemoryServiceFeature.QUERYABLE;
 
@@ -44,7 +43,6 @@ public class VolatileMemAllocator extends RestorableAllocator<VolatileMemAllocat
   private long[][] m_ttable;
   private VolatileMemoryAllocatorService m_vmasvc = null;
   private Queryable m_querable = null;
-  private Set<MemoryServiceFeature> m_features = null;
 
   /**
    * Constructor, it initializes and allocate a memory pool from specified uri
@@ -70,6 +68,7 @@ public class VolatileMemAllocator extends RestorableAllocator<VolatileMemAllocat
     if (!m_features.contains(MemoryServiceFeature.VOLATILE)) {
       throw new ConfigurationException("The specified memory service does not support volatile feature");
     }
+    m_absaddr = m_features.contains(MemoryServiceFeature.ABSTRACTADDRESSING);
     if (capacity <= 0) {
       throw new IllegalArgumentException("VolatileMemAllocator cannot be initialized with capacity <= 0.");
     }

http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/50e2a574/mnemonic-core/src/main/java/org/apache/mnemonic/service/memory/MemoryServiceFeature.java
----------------------------------------------------------------------
diff --git a/mnemonic-core/src/main/java/org/apache/mnemonic/service/memory/MemoryServiceFeature.java b/mnemonic-core/src/main/java/org/apache/mnemonic/service/memory/MemoryServiceFeature.java
index 1fa6ab8..1adb625 100644
--- a/mnemonic-core/src/main/java/org/apache/mnemonic/service/memory/MemoryServiceFeature.java
+++ b/mnemonic-core/src/main/java/org/apache/mnemonic/service/memory/MemoryServiceFeature.java
@@ -21,7 +21,8 @@ public enum MemoryServiceFeature {
   VOLATILE(1),
   NONVOLATILE(2),
   TRANSACTABLE(3),
-  QUERYABLE(4);
+  QUERYABLE(4),
+  ABSTRACTADDRESSING(5);
 
   private int value;