/** * @param plc data region Configuration. * @param pageMem Page memory. */ protected PageEvictionTracker createPageEvictionTracker(DataRegionConfiguration plc, PageMemory pageMem) { if (plc.getPageEvictionMode() == DataPageEvictionMode.DISABLED || plc.isPersistenceEnabled()) return new NoOpPageEvictionTracker(); assert pageMem instanceof PageMemoryNoStoreImpl : pageMem.getClass(); PageMemoryNoStoreImpl pageMem0 = (PageMemoryNoStoreImpl)pageMem; if (Boolean.getBoolean("override.fair.fifo.page.eviction.tracker")) return new FairFifoPageEvictionTracker(pageMem0, plc, cctx); switch (plc.getPageEvictionMode()) { case RANDOM_LRU: return new RandomLruPageEvictionTracker(pageMem0, plc, cctx); case RANDOM_2_LRU: return new Random2LruPageEvictionTracker(pageMem0, plc, cctx); default: return new NoOpPageEvictionTracker(); } }
/** * @param pageSize Page size. * @return Free list. * @throws Exception If failed. */ protected FreeList createFreeList(int pageSize) throws Exception { DataRegionConfiguration plcCfg = new DataRegionConfiguration() .setInitialSize(1024 * MB) .setMaxSize(1024 * MB); pageMem = createPageMemory(pageSize, plcCfg); long metaPageId = pageMem.allocatePage(1, 1, PageIdAllocator.FLAG_DATA); DataRegionMetricsImpl regionMetrics = new DataRegionMetricsImpl(plcCfg); DataRegion dataRegion = new DataRegion(pageMem, plcCfg, regionMetrics, new NoOpPageEvictionTracker()); return new CacheFreeListImpl(1, "freelist", regionMetrics, dataRegion, null, null, metaPageId, true); }
/** * @param plc data region Configuration. * @param pageMem Page memory. */ protected PageEvictionTracker createPageEvictionTracker(DataRegionConfiguration plc, PageMemory pageMem) { if (plc.getPageEvictionMode() == DataPageEvictionMode.DISABLED || plc.isPersistenceEnabled()) return new NoOpPageEvictionTracker(); assert pageMem instanceof PageMemoryNoStoreImpl : pageMem.getClass(); PageMemoryNoStoreImpl pageMem0 = (PageMemoryNoStoreImpl)pageMem; if (Boolean.getBoolean("override.fair.fifo.page.eviction.tracker")) return new FairFifoPageEvictionTracker(pageMem0, plc, cctx); switch (plc.getPageEvictionMode()) { case RANDOM_LRU: return new RandomLruPageEvictionTracker(pageMem0, plc, cctx); case RANDOM_2_LRU: return new Random2LruPageEvictionTracker(pageMem0, plc, cctx); default: return new NoOpPageEvictionTracker(); } }