IGNITE-5134: Explicit cast to PageMemoryNoStoreImpl in 
IgniteCacheDatabaseSharedManager (cherry picked from commit 77a2c20)


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

Branch: refs/heads/ignite-5075-pds
Commit: 9b7c4ac8f337e8af7b8ef1dfab7e1ee86357bc7c
Parents: 38e9baa
Author: Ivan Rakov <[email protected]>
Authored: Tue May 2 16:40:57 2017 +0300
Committer: Ivan Rakov <[email protected]>
Committed: Mon May 15 13:25:22 2017 +0300

----------------------------------------------------------------------
 .../IgniteCacheDatabaseSharedManager.java       | 22 +++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9b7c4ac8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
index 8e53df6..540b9ea 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
@@ -746,7 +746,11 @@ public class IgniteCacheDatabaseSharedManager extends 
GridCacheSharedManagerAdap
      * @param memMetrics {@link MemoryMetrics} object to collect memory usage 
metrics.
      * @return Memory policy instance.
      */
-    private MemoryPolicy initMemory(MemoryConfiguration memCfg, 
MemoryPolicyConfiguration plcCfg, MemoryMetricsImpl memMetrics) {
+    private MemoryPolicy initMemory(
+        MemoryConfiguration memCfg,
+        MemoryPolicyConfiguration plcCfg,
+        MemoryMetricsImpl memMetrics
+    ) {
         File allocPath = buildAllocPath(plcCfg);
 
         DirectMemoryProvider memProvider = allocPath == null ?
@@ -757,23 +761,27 @@ public class IgniteCacheDatabaseSharedManager extends 
GridCacheSharedManagerAdap
 
         PageMemory pageMem = createPageMemory(memProvider, memCfg, plcCfg, 
memMetrics);
 
-        return new MemoryPolicy(pageMem, plcCfg, memMetrics, 
createPageEvictionTracker(plcCfg,
-            (PageMemoryNoStoreImpl)pageMem));
+        return new MemoryPolicy(pageMem, plcCfg, memMetrics, 
createPageEvictionTracker(plcCfg, pageMem));
     }
 
     /**
      * @param plc Memory Policy Configuration.
      * @param pageMem Page memory.
      */
-    private PageEvictionTracker 
createPageEvictionTracker(MemoryPolicyConfiguration plc, PageMemoryNoStoreImpl 
pageMem) {
+    private PageEvictionTracker 
createPageEvictionTracker(MemoryPolicyConfiguration plc, PageMemory pageMem) {
         if (Boolean.getBoolean("override.fair.fifo.page.eviction.tracker"))
-            return new FairFifoPageEvictionTracker(pageMem, plc, cctx);
+            return new 
FairFifoPageEvictionTracker((PageMemoryNoStoreImpl)pageMem, plc, cctx);
+
+        if (plc.getPageEvictionMode() == DataPageEvictionMode.DISABLED)
+            return new NoOpPageEvictionTracker();
+
+        PageMemoryNoStoreImpl pageMemoryNoStore = 
(PageMemoryNoStoreImpl)pageMem;
 
         switch (plc.getPageEvictionMode()) {
             case RANDOM_LRU:
-                return new RandomLruPageEvictionTracker(pageMem, plc, cctx);
+                return new RandomLruPageEvictionTracker(pageMemoryNoStore, 
plc, cctx);
             case RANDOM_2_LRU:
-                return new Random2LruPageEvictionTracker(pageMem, plc, cctx);
+                return new Random2LruPageEvictionTracker(pageMemoryNoStore, 
plc, cctx);
             default:
                 return new NoOpPageEvictionTracker();
         }

Reply via email to