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/23 17:02:00 UTC

incubator-mnemonic git commit: MNEMONIC-391: Support storage addressing in durable object model

Repository: incubator-mnemonic
Updated Branches:
  refs/heads/master 9cd39fc93 -> 0a3e2929d


MNEMONIC-391: Support storage addressing in durable object model


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

Branch: refs/heads/master
Commit: 0a3e2929d7687a4a717e5768499fe213e5918f3c
Parents: 9cd39fc
Author: Wang, Gang(Gary) <ga...@intel.com>
Authored: Mon Oct 23 10:01:31 2017 -0700
Committer: Wang, Gang(Gary) <ga...@intel.com>
Committed: Mon Oct 23 10:01:31 2017 -0700

----------------------------------------------------------------------
 .../org/apache/mnemonic/AddressTranslator.java  |  2 +-
 .../mnemonic/NonVolatileMemAllocator.java       | 12 ++++++++---
 .../apache/mnemonic/VolatileMemAllocator.java   | 12 ++++++++---
 .../memory/VolatileMemoryAllocatorService.java  | 22 +++++++++++++++++++-
 .../memory/internal/JavaVMemServiceImpl.java    | 12 ++++++++++-
 .../memory/internal/PMemServiceImpl.java        | 12 ++++++++++-
 .../memory/internal/VMemServiceImpl.java        | 12 ++++++++++-
 .../memory/internal/PMallocServiceImpl.java     | 12 ++++++++++-
 .../memory/internal/SysVMemServiceImpl.java     | 12 ++++++++++-
 9 files changed, 95 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/0a3e2929/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 be1203a..615c96a 100644
--- a/mnemonic-core/src/main/java/org/apache/mnemonic/AddressTranslator.java
+++ b/mnemonic-core/src/main/java/org/apache/mnemonic/AddressTranslator.java
@@ -51,7 +51,7 @@ public interface AddressTranslator {
    *
    * @return the abstract address
    */
-  long getAbstractAddress(long addr);
+  byte[] getAbstractAddress(long addr);
 
   /**
    * set address translate table

http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/0a3e2929/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 7b4757a..d3fc9a6 100644
--- a/mnemonic-core/src/main/java/org/apache/mnemonic/NonVolatileMemAllocator.java
+++ b/mnemonic-core/src/main/java/org/apache/mnemonic/NonVolatileMemAllocator.java
@@ -575,6 +575,9 @@ public class NonVolatileMemAllocator extends RestorableAllocator<NonVolatileMemA
    */
   @Override
   public long getPortableAddress(long addr) {
+    if (useAbstractAddressing()) {
+      return m_nvmasvc.getPortableAddress(addr);
+    }
     int i;
     for (i = 0; i < m_ttable.length; ++i) {
       if (addr >= m_ttable[i][2] && addr < m_ttable[i][1] + m_ttable[i][2]) {
@@ -594,6 +597,9 @@ public class NonVolatileMemAllocator extends RestorableAllocator<NonVolatileMemA
    */
   @Override
   public long getEffectiveAddress(long addr) {
+    if (useAbstractAddressing()) {
+      return m_nvmasvc.getEffectiveAddress(addr);
+    }
     int i;
     for (i = 0; i < m_ttable.length; ++i) {
       if (addr >= m_ttable[i][0] && addr < m_ttable[i][1]) {
@@ -604,9 +610,9 @@ public class NonVolatileMemAllocator extends RestorableAllocator<NonVolatileMemA
   }
 
   @Override
-  public long getAbstractAddress(long addr) {
-    long ret = 0L;
-    if (m_absaddr) {
+  public byte[] getAbstractAddress(long addr) {
+    byte[] ret;
+    if (useAbstractAddressing()) {
       ret = m_nvmasvc.getAbstractAddress(addr);
     } else {
       throw new ConfigurationException("Do not support get abstract address operation");

http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/0a3e2929/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 44631b4..c7a2089 100644
--- a/mnemonic-core/src/main/java/org/apache/mnemonic/VolatileMemAllocator.java
+++ b/mnemonic-core/src/main/java/org/apache/mnemonic/VolatileMemAllocator.java
@@ -501,6 +501,9 @@ public class VolatileMemAllocator extends RestorableAllocator<VolatileMemAllocat
    */
   @Override
   public long getPortableAddress(long addr) {
+    if (useAbstractAddressing()) {
+      return m_vmasvc.getPortableAddress(addr);
+    }
     int i;
     if (null == m_ttable) {
       return addr;
@@ -523,6 +526,9 @@ public class VolatileMemAllocator extends RestorableAllocator<VolatileMemAllocat
    */
   @Override
   public long getEffectiveAddress(long addr) {
+    if (useAbstractAddressing()) {
+      return m_vmasvc.getEffectiveAddress(addr);
+    }
     int i;
     if (null == m_ttable) {
       return addr;
@@ -536,9 +542,9 @@ public class VolatileMemAllocator extends RestorableAllocator<VolatileMemAllocat
   }
 
   @Override
-  public long getAbstractAddress(long addr) {
-    long ret = 0L;
-    if (m_absaddr) {
+  public byte[] getAbstractAddress(long addr) {
+    byte[] ret;
+    if (useAbstractAddressing()) {
       ret = m_vmasvc.getAbstractAddress(addr);
     } else {
       throw new ConfigurationException("Do not support get abstract address operation");

http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/0a3e2929/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 c11385e..a9f1572 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
@@ -321,6 +321,26 @@ public interface VolatileMemoryAllocatorService extends QueryableService {
    *
    * @return the abstract address
    */
-  long getAbstractAddress(long addr);
+  byte[] getAbstractAddress(long addr);
+
+  /**
+   * translate the portable address
+   *
+   * @param addr
+   *          the address to be translated
+   *
+   * @return the portable address
+   */
+  long getPortableAddress(long addr);
+
+  /**
+   * translate the effective address
+   *
+   * @param addr
+   *          the address to be translated
+   *
+   * @return the effective address
+   */
+  long getEffectiveAddress(long addr);
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/0a3e2929/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 4ee80c2..564c1fb 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
@@ -392,10 +392,20 @@ public class JavaVMemServiceImpl implements VolatileMemoryAllocatorService {
   }
 
   @Override
-  public long getAbstractAddress(long addr) {
+  public byte[] getAbstractAddress(long addr) {
     throw new UnsupportedOperationException("Unrsupported to get abstract address");
   }
 
+  @Override
+  public long getPortableAddress(long addr) {
+    throw new UnsupportedOperationException("Unrsupported to get portable address");
+  }
+
+  @Override
+  public long getEffectiveAddress(long addr) {
+    throw new UnsupportedOperationException("Unrsupported to get effective address");
+  }
+
   public ArrayList<MemoryInfo> getMemPools() {
     return this.mem_pools;
   }

http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/0a3e2929/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 701f969..aac3c87 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
@@ -177,10 +177,20 @@ public class PMemServiceImpl implements NonVolatileMemoryAllocatorService {
   }
 
   @Override
-  public long getAbstractAddress(long addr) {
+  public byte[] getAbstractAddress(long addr) {
     throw new UnsupportedOperationException("Unrsupported to get abstract address");
   }
 
+  @Override
+  public long getPortableAddress(long addr) {
+    throw new UnsupportedOperationException("Unrsupported to get portable address");
+  }
+
+  @Override
+  public long getEffectiveAddress(long addr) {
+    throw new UnsupportedOperationException("Unrsupported to get effective 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/0a3e2929/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 a676053..eda8c76 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
@@ -169,10 +169,20 @@ public class VMemServiceImpl implements VolatileMemoryAllocatorService {
   }
 
   @Override
-  public long getAbstractAddress(long addr) {
+  public byte[] getAbstractAddress(long addr) {
     throw new UnsupportedOperationException("Unrsupported to get abstract address");
   }
 
+  @Override
+  public long getPortableAddress(long addr) {
+    throw new UnsupportedOperationException("Unrsupported to get portable address");
+  }
+
+  @Override
+  public long getEffectiveAddress(long addr) {
+    throw new UnsupportedOperationException("Unrsupported to get effective 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/0a3e2929/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 8f250cf..71e212f 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
@@ -177,10 +177,20 @@ public class PMallocServiceImpl implements NonVolatileMemoryAllocatorService {
   }
 
   @Override
-  public long getAbstractAddress(long addr) {
+  public byte[] getAbstractAddress(long addr) {
     throw new UnsupportedOperationException("Unrsupported to get abstract address");
   }
 
+  @Override
+  public long getPortableAddress(long addr) {
+    throw new UnsupportedOperationException("Unrsupported to get portable address");
+  }
+
+  @Override
+  public long getEffectiveAddress(long addr) {
+    throw new UnsupportedOperationException("Unrsupported to get effective 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/0a3e2929/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 512a1fd..3d15230 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
@@ -169,10 +169,20 @@ public class SysVMemServiceImpl implements VolatileMemoryAllocatorService {
   }
 
   @Override
-  public long getAbstractAddress(long addr) {
+  public byte[] getAbstractAddress(long addr) {
     throw new UnsupportedOperationException("Unrsupported to get abstract address");
   }
 
+  @Override
+  public long getPortableAddress(long addr) {
+    throw new UnsupportedOperationException("Unrsupported to get portable address");
+  }
+
+  @Override
+  public long getEffectiveAddress(long addr) {
+    throw new UnsupportedOperationException("Unrsupported to get effective address");
+  }
+
   protected native long ninit(long capacity, String uri, boolean isnew);
 
   protected native void nclose(long id);