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(); }
