You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/05/24 18:05:31 UTC

[08/32] ignite git commit: IGNITE-5150 - Corrected allocated memory pages count. Closes #1915

IGNITE-5150 - Corrected allocated memory pages count. Closes #1915


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/42018e6a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/42018e6a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/42018e6a

Branch: refs/heads/ignite-5075-pds
Commit: 42018e6a9d1240c99687d0b39f7ea2b132fa5544
Parents: 661bb53
Author: Ivan Rakov <iv...@gmail.com>
Authored: Tue May 23 15:05:16 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Tue May 23 15:05:16 2017 +0300

----------------------------------------------------------------------
 .../pagemem/impl/PageMemoryNoStoreImpl.java     | 22 +-------------
 .../pagemem/impl/PageMemoryNoLoadSelfTest.java  | 31 +++++++++++++++++++-
 2 files changed, 31 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/42018e6a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
index 1d968c5..b8abfed 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
@@ -336,20 +336,7 @@ public class PageMemoryNoStoreImpl implements PageMemory {
 
     /** {@inheritDoc} */
     @Override public long loadedPages() {
-        long total = 0;
-
-        for (Segment seg : segments) {
-            seg.readLock().lock();
-
-            try {
-                total += seg.allocatedPages();
-            }
-            finally {
-                seg.readLock().unlock();
-            }
-        }
-
-        return total;
+        return allocatedPages.get();
     }
 
     /**
@@ -757,13 +744,6 @@ public class PageMemoryNoStoreImpl implements PageMemory {
         }
 
         /**
-         * @return Total number of loaded pages for the segment.
-         */
-        private int allocatedPages() {
-            return allocatedPages.get();
-        }
-
-        /**
          * @return Total number of currently acquired pages.
          */
         private int acquiredPages() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/42018e6a/modules/core/src/test/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoLoadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoLoadSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoLoadSelfTest.java
index 0a283ed..93b68f3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoLoadSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoLoadSelfTest.java
@@ -25,6 +25,7 @@ import java.util.List;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.configuration.MemoryPolicyConfiguration;
 import org.apache.ignite.internal.mem.DirectMemoryProvider;
+import org.apache.ignite.internal.mem.IgniteOutOfMemoryException;
 import org.apache.ignite.internal.mem.file.MappedFileMemoryProvider;
 import org.apache.ignite.internal.pagemem.FullPageId;
 import org.apache.ignite.internal.pagemem.PageIdAllocator;
@@ -43,6 +44,9 @@ public class PageMemoryNoLoadSelfTest extends GridCommonAbstractTest {
     /** */
     protected static final int PAGE_SIZE = 8 * 1024;
 
+    /** */
+    private static final int MAX_MEMORY_SIZE = 10 * 1024 * 1024;
+
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         deleteRecursively(U.resolveWorkDirectory(U.defaultWorkDirectory(), "pagemem", false));
@@ -95,6 +99,31 @@ public class PageMemoryNoLoadSelfTest extends GridCommonAbstractTest {
     /**
      * @throws Exception If failed.
      */
+    public void testLoadedPagesCount() throws Exception {
+        PageMemory mem = memory();
+
+        mem.start();
+
+        int expPages = MAX_MEMORY_SIZE / mem.systemPageSize();
+
+        try {
+            for (int i = 0; i < expPages * 2; i++)
+                allocatePage(mem);
+        }
+        catch (IgniteOutOfMemoryException e) {
+            e.printStackTrace();
+            // Expected.
+
+            assertEquals(mem.loadedPages(), expPages);
+        }
+        finally {
+            mem.stop();
+        }
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
     public void testPageTearingSequential() throws Exception {
         PageMemory mem = memory();
 
@@ -281,7 +310,7 @@ public class PageMemoryNoLoadSelfTest extends GridCommonAbstractTest {
         File memDir = U.resolveWorkDirectory(U.defaultWorkDirectory(), "pagemem", false);
 
         MemoryPolicyConfiguration plcCfg = new MemoryPolicyConfiguration()
-            .setInitialSize(10 * 1024 * 1024).setMaxSize(10 * 1024 * 1024);
+            .setMaxSize(MAX_MEMORY_SIZE).setInitialSize(MAX_MEMORY_SIZE);
 
         DirectMemoryProvider provider = new MappedFileMemoryProvider(log(), memDir);