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 2016/04/08 04:11:45 UTC

incubator-mnemonic git commit: upgrade resgc and utilize its new feature

Repository: incubator-mnemonic
Updated Branches:
  refs/heads/master b986d48c1 -> af3bb7019


upgrade resgc and utilize its new feature


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

Branch: refs/heads/master
Commit: af3bb7019961ee349a6cc3a39c23a6eb6cfaffa0
Parents: b986d48
Author: Wang, Gang(Gary) <ga...@intel.com>
Authored: Thu Apr 7 19:11:01 2016 -0700
Committer: Wang, Gang(Gary) <ga...@intel.com>
Committed: Thu Apr 7 19:11:01 2016 -0700

----------------------------------------------------------------------
 .../apache/mnemonic/BigDataMemAllocator.java    | 20 ++++--------------
 .../apache/mnemonic/BigDataPMemAllocator.java   | 22 ++++----------------
 .../org/apache/mnemonic/SysMemAllocator.java    | 22 +++++---------------
 pom.xml                                         |  2 +-
 4 files changed, 14 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/af3bb701/core/src/main/java/org/apache/mnemonic/BigDataMemAllocator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/mnemonic/BigDataMemAllocator.java b/core/src/main/java/org/apache/mnemonic/BigDataMemAllocator.java
index e663540..3ed3181 100644
--- a/core/src/main/java/org/apache/mnemonic/BigDataMemAllocator.java
+++ b/core/src/main/java/org/apache/mnemonic/BigDataMemAllocator.java
@@ -149,7 +149,7 @@ public class BigDataMemAllocator extends CommonAllocator<BigDataMemAllocator> {
 	if (size > 0) {
 	    Long addr = m_vmasvc.reallocate(m_nid, mholder.get(), size, true);
 	    if (0 == addr && m_activegc) {
-		forceGC();
+	        m_chunkcollector.waitReclaimCoolDown(m_gctimeout);
 		addr = m_vmasvc.reallocate(m_nid, mholder.get(), size, true);
 	    }
 	    if (0 != addr) {
@@ -186,7 +186,7 @@ public class BigDataMemAllocator extends CommonAllocator<BigDataMemAllocator> {
 	    int buflimit = mholder.get().limit();
 	    ByteBuffer buf = m_vmasvc.resizeByteBuffer(m_nid, mholder.get(), size);
 	    if (null == buf && m_activegc) {
-		forceGC();
+	        m_bufcollector.waitReclaimCoolDown(m_gctimeout);
 		buf = m_vmasvc.resizeByteBuffer(m_nid, mholder.get(), size);
 	    }
 	    if (null != buf) {
@@ -220,7 +220,7 @@ public class BigDataMemAllocator extends CommonAllocator<BigDataMemAllocator> {
 	MemChunkHolder<BigDataMemAllocator> ret = null;
 	Long addr = m_vmasvc.allocate(m_nid, size, true);
 	if (0 == addr && m_activegc) {
-	    forceGC();
+	    m_chunkcollector.waitReclaimCoolDown(m_gctimeout);
 	    addr = m_vmasvc.allocate(m_nid, size, true);
 	}
 	if (0 != addr) {
@@ -250,7 +250,7 @@ public class BigDataMemAllocator extends CommonAllocator<BigDataMemAllocator> {
 	MemBufferHolder<BigDataMemAllocator> ret = null;
 	ByteBuffer bb = m_vmasvc.createByteBuffer(m_nid, size);
 	if (null == bb && m_activegc) {
-	    forceGC();
+	    m_bufcollector.waitReclaimCoolDown(m_gctimeout);
 	    bb = m_vmasvc.createByteBuffer(m_nid, size);
 	}
 	if (null != bb) {
@@ -262,17 +262,5 @@ public class BigDataMemAllocator extends CommonAllocator<BigDataMemAllocator> {
 	}
 	return ret;
     }
-	
-    /**
-     * force to perform GC that is used to release unused backed memory
-     * resources.
-     */
-    private void forceGC() {
-	System.gc();
-	try {
-	    Thread.sleep(m_gctimeout);
-	} catch (Exception ex) {
-	}
-    }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/af3bb701/core/src/main/java/org/apache/mnemonic/BigDataPMemAllocator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/mnemonic/BigDataPMemAllocator.java b/core/src/main/java/org/apache/mnemonic/BigDataPMemAllocator.java
index aac30e3..a067309 100644
--- a/core/src/main/java/org/apache/mnemonic/BigDataPMemAllocator.java
+++ b/core/src/main/java/org/apache/mnemonic/BigDataPMemAllocator.java
@@ -117,7 +117,6 @@ public class BigDataPMemAllocator extends CommonPersistAllocator<BigDataPMemAllo
      */
     @Override
     public void close() {
-	forceGC();
 	super.close();
 	m_nvmasvc.close(m_nid);
     }
@@ -150,7 +149,7 @@ public class BigDataPMemAllocator extends CommonPersistAllocator<BigDataPMemAllo
 	if (size > 0) {
 	    Long addr = m_nvmasvc.reallocate(m_nid, mholder.get(), size, true);
 	    if (0 == addr && m_activegc) {
-		forceGC();
+	        m_chunkcollector.waitReclaimCoolDown(m_gctimeout);
 		addr = m_nvmasvc.reallocate(m_nid, mholder.get(), size, true);
 	    }
 	    if (0 != addr) {
@@ -187,7 +186,7 @@ public class BigDataPMemAllocator extends CommonPersistAllocator<BigDataPMemAllo
 	    int buflimit = mholder.get().limit();
 	    ByteBuffer buf = m_nvmasvc.resizeByteBuffer(m_nid, mholder.get(), size);
 	    if (null == buf && m_activegc) {
-		forceGC();
+	        m_bufcollector.waitReclaimCoolDown(m_gctimeout);
 		buf = m_nvmasvc.resizeByteBuffer(m_nid, mholder.get(), size);
 	    }
 	    if (null != buf) {
@@ -221,7 +220,7 @@ public class BigDataPMemAllocator extends CommonPersistAllocator<BigDataPMemAllo
 	MemChunkHolder<BigDataPMemAllocator> ret = null;
 	Long addr = m_nvmasvc.allocate(m_nid, size, true);
 	if ((null == addr || 0 == addr) && m_activegc) {
-	    forceGC();
+	    m_chunkcollector.waitReclaimCoolDown(m_gctimeout);
 	    addr = m_nvmasvc.allocate(m_nid, size, true);
 	}
 	if (null != addr && 0 != addr) {
@@ -251,7 +250,7 @@ public class BigDataPMemAllocator extends CommonPersistAllocator<BigDataPMemAllo
 	MemBufferHolder<BigDataPMemAllocator> ret = null;
 	ByteBuffer bb = m_nvmasvc.createByteBuffer(m_nid, size);
 	if (null == bb && m_activegc) {
-	    forceGC();
+	    m_bufcollector.waitReclaimCoolDown(m_gctimeout);
 	    bb = m_nvmasvc.createByteBuffer(m_nid, size);
 	}
 	if (null != bb) {
@@ -406,19 +405,6 @@ public class BigDataPMemAllocator extends CommonPersistAllocator<BigDataPMemAllo
     }
 	
     /**
-     * force to perform GC that is used to re-claim garbages objects 
-     * as well as memory resources managed by this allocator.
-     *
-     */
-    private void forceGC() {
-	System.gc();
-	try {
-	    Thread.sleep(m_gctimeout);
-	} catch (Exception ex) {
-	}
-    }
-
-    /**
      * calculate the portable address
      *
      * @param addr 

http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/af3bb701/core/src/main/java/org/apache/mnemonic/SysMemAllocator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/mnemonic/SysMemAllocator.java b/core/src/main/java/org/apache/mnemonic/SysMemAllocator.java
index a693556..8889d48 100644
--- a/core/src/main/java/org/apache/mnemonic/SysMemAllocator.java
+++ b/core/src/main/java/org/apache/mnemonic/SysMemAllocator.java
@@ -163,7 +163,7 @@ public class SysMemAllocator extends CommonAllocator<SysMemAllocator> {
 	if (size > 0) {
 	    if (currentMemory.get() + size > maxStoreCapacity) {
 		if (m_activegc) {
-		    forceGC();
+		    m_chunkcollector.waitReclaimCoolDown(m_gctimeout);
 		}
 	    }
 	    if (currentMemory.get() + size <= maxStoreCapacity) {
@@ -203,7 +203,7 @@ public class SysMemAllocator extends CommonAllocator<SysMemAllocator> {
 	    int buflimit = mholder.get().limit();
 	    if (currentMemory.get() + size > maxStoreCapacity) {
 		if (m_activegc) {
-		    forceGC();
+		    m_bufcollector.waitReclaimCoolDown(m_gctimeout);
 		}
 	    }
 	    if (currentMemory.get() + size <= maxStoreCapacity) {
@@ -241,7 +241,7 @@ public class SysMemAllocator extends CommonAllocator<SysMemAllocator> {
 	Long addr = null;
 	if (currentMemory.get() + size > maxStoreCapacity) {
 	    if (m_activegc) {
-		forceGC();
+	        m_chunkcollector.waitReclaimCoolDown(m_gctimeout);
 	    }
 	}
 	if (currentMemory.get() + size <= maxStoreCapacity) {
@@ -273,7 +273,7 @@ public class SysMemAllocator extends CommonAllocator<SysMemAllocator> {
 	ByteBuffer bb = null;
 	if (currentMemory.get() + size > maxStoreCapacity) {
 	    if (m_activegc) {
-		forceGC();
+	        m_bufcollector.waitReclaimCoolDown(m_gctimeout);
 	    }
 	}
 	if (currentMemory.get() + size <= maxStoreCapacity) {
@@ -289,17 +289,5 @@ public class SysMemAllocator extends CommonAllocator<SysMemAllocator> {
 	}
 	return ret;
     }
-	
-    /**
-     * force to perform GC that is used to release unused backed memory
-     * resources.
-     */
-    private void forceGC() {
-	System.gc();
-	try {
-	    Thread.sleep(m_gctimeout);
-	} catch (Exception ex) {
-	}
-    }
-	
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/af3bb701/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 37bc5df..882b5dd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -128,7 +128,7 @@
       <dependency>
 	<groupId>org.flowcomputing.commons</groupId>
 	<artifactId>commons-resgc</artifactId>
-	<version>0.8.7</version>
+	<version>0.8.9</version>
       </dependency>
       <dependency>
 	<groupId>org.flowcomputing.commons</groupId>