You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2017/05/24 17:26:58 UTC
[14/41] 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-5267
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);