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/01/11 13:22:52 UTC
[18/25] ignite git commit: 11810
11810
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a481704b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a481704b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a481704b
Branch: refs/heads/ignite-gg-11810
Commit: a481704b9cd2235cbdf697e6ea300492a0f6bee5
Parents: 061a059
Author: sboikov <sb...@gridgain.com>
Authored: Thu Dec 29 13:53:40 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Dec 29 13:53:40 2016 +0300
----------------------------------------------------------------------
.../pagemem/impl/PageMemoryNoStoreImpl.java | 96 +++++---------------
.../internal/pagemem/impl/PageNoStoreImpl.java | 48 +---------
.../cache/IgniteCacheOffheapManagerImpl.java | 29 +-----
.../cache/database/CacheDataRowAdapter.java | 72 +++++++++++++++
.../IgniteCacheDatabaseSharedManager.java | 2 +-
.../pagemem/impl/PageMemoryNoLoadSelfTest.java | 2 +-
.../database/BPlusTreeReuseSelfTest.java | 3 +
.../processors/database/BPlusTreeSelfTest.java | 2 +-
.../database/FreeListImplSelfTest.java | 2 +-
.../database/MetadataStorageSelfTest.java | 2 +-
10 files changed, 113 insertions(+), 145 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a481704b/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 409703e..830f781a 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
@@ -20,15 +20,14 @@ package org.apache.ignite.internal.pagemem.impl;
import java.io.Closeable;
import java.io.IOException;
import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteException;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.internal.mem.DirectMemory;
-import org.apache.ignite.internal.mem.DirectMemoryRegion;
import org.apache.ignite.internal.mem.DirectMemoryProvider;
+import org.apache.ignite.internal.mem.DirectMemoryRegion;
import org.apache.ignite.internal.mem.OutOfMemoryException;
import org.apache.ignite.internal.pagemem.Page;
import org.apache.ignite.internal.pagemem.PageIdUtils;
@@ -37,7 +36,6 @@ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
import org.apache.ignite.internal.util.GridUnsafe;
import org.apache.ignite.internal.util.OffheapReadWriteLock;
import org.apache.ignite.internal.util.offheap.GridOffHeapOutOfMemoryException;
-import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lifecycle.LifecycleAware;
import sun.misc.JavaNioAccess;
import sun.misc.SharedSecrets;
@@ -90,10 +88,7 @@ public class PageMemoryNoStoreImpl implements PageMemory {
public static final int PAGE_ID_OFFSET = 8;
/** Page pin counter offset. */
- public static final int PIN_CNT_OFFSET = 16;
-
- /** Page pin counter offset. */
- public static final int LOCK_OFFSET = 24;
+ public static final int LOCK_OFFSET = 16;
/**
* Need a 8-byte pointer for linked list, 8 bytes for internal needs (flags),
@@ -134,21 +129,28 @@ public class PageMemoryNoStoreImpl implements PageMemory {
/** */
private OffheapReadWriteLock rwLock;
+ /** */
+ private final boolean trackAcquiredPages;
+
/**
+ * @param log Logger.
* @param directMemoryProvider Memory allocator to use.
* @param sharedCtx Cache shared context.
* @param pageSize Page size.
+ * @param trackAcquiredPages If {@code true} tracks number of allocated pages (for tests purpose only).
*/
public PageMemoryNoStoreImpl(
IgniteLogger log,
DirectMemoryProvider directMemoryProvider,
GridCacheSharedContext<?, ?> sharedCtx,
- int pageSize
+ int pageSize,
+ boolean trackAcquiredPages
) {
assert log != null || sharedCtx != null;
this.log = sharedCtx != null ? sharedCtx.logger(PageMemoryNoStoreImpl.class) : log;
this.directMemoryProvider = directMemoryProvider;
+ this.trackAcquiredPages = trackAcquiredPages;
sysPageSize = pageSize + PAGE_OVERHEAD;
@@ -253,9 +255,6 @@ public class PageMemoryNoStoreImpl implements PageMemory {
writePageId(absPtr, pageId);
- // Clear pin counter.
- GridUnsafe.putLong(absPtr + PIN_CNT_OFFSET, 0);
-
// TODO pass an argument to decide whether the page should be cleaned.
GridUnsafe.setMemory(absPtr + PAGE_OVERHEAD, sysPageSize - PAGE_OVERHEAD, (byte)0);
@@ -275,23 +274,21 @@ public class PageMemoryNoStoreImpl implements PageMemory {
@Override public Page page(int cacheId, long pageId) throws IgniteCheckedException {
Segment seg = segment(pageId);
- return seg.acquirePage(cacheId, pageId, false);
+ return seg.acquirePage(cacheId, pageId);
}
/** {@inheritDoc} */
@Override public Page page(int cacheId, long pageId, boolean restore) throws IgniteCheckedException {
- Segment seg = segment(pageId);
-
- return seg.acquirePage(cacheId, pageId, restore);
+ throw new UnsupportedOperationException();
}
/** {@inheritDoc} */
@Override public void releasePage(Page p) {
- PageNoStoreImpl page = (PageNoStoreImpl)p;
+ if (trackAcquiredPages) {
+ Segment seg = segment(p.id());
- Segment seg = segments[page.segmentIndex()];
-
- seg.releasePage(page);
+ seg.onPageRelease();
+ }
}
/** {@inheritDoc} */
@@ -440,7 +437,7 @@ public class PageMemoryNoStoreImpl implements PageMemory {
* @param absPtr Absolute memory pointer to the page header.
* @param pageId Page ID to write.
*/
- void writePageId(long absPtr, long pageId) {
+ private void writePageId(long absPtr, long pageId) {
GridUnsafe.putLong(absPtr + PAGE_ID_OFFSET, pageId);
}
@@ -540,52 +537,23 @@ public class PageMemoryNoStoreImpl implements PageMemory {
}
/**
+ * @param cacheId Cache ID.
* @param pageId Page ID to pin.
* @return Pinned page impl.
*/
@SuppressWarnings("TypeMayBeWeakened")
- private PageNoStoreImpl acquirePage(int cacheId, long pageId, boolean restore) {
+ private PageNoStoreImpl acquirePage(int cacheId, long pageId) {
long absPtr = absolute(pageId);
- long marker = GridUnsafe.getLong(absPtr);
-
- if (marker != PAGE_MARKER)
- throw new IllegalStateException("Page was not allocated [absPtr=" + U.hexLong(absPtr) +
- ", cacheId=" + cacheId + ", pageId=" + U.hexLong(pageId) +
- ", marker=" + U.hexLong(marker) + ']');
-
- while (true) {
- long pinCnt = GridUnsafe.getLong(absPtr + PIN_CNT_OFFSET);
-
- if (pinCnt < 0)
- throw new IllegalStateException("Page has been deallocated [absPtr=" + U.hexLong(absPtr) +
- ", cacheId=" + cacheId + ", pageId=" + U.hexLong(pageId) + ", pinCnt=" + pinCnt + ']');
+ if (trackAcquiredPages)
+ acquiredPages.incrementAndGet();
- if (GridUnsafe.compareAndSwapLong(null, absPtr + PIN_CNT_OFFSET, pinCnt, pinCnt + 1))
- break;
- }
-
- acquiredPages.incrementAndGet();
-
- return new PageNoStoreImpl(PageMemoryNoStoreImpl.this, idx, absPtr, cacheId, pageId, restore);
+ return new PageNoStoreImpl(PageMemoryNoStoreImpl.this, absPtr, cacheId, pageId);
}
/**
- * @param pinnedPage Page to unpin.
*/
- private void releasePage(PageNoStoreImpl pinnedPage) {
- long absPtr = pinnedPage.absolutePointer();
-
- while (true) {
- long pinCnt = GridUnsafe.getLong(absPtr + PIN_CNT_OFFSET);
-
- assert pinCnt > 0 : "Releasing a page that was not pinned [page=" + pinnedPage +
- ", pinCnt=" + pinCnt + ']';
-
- if (GridUnsafe.compareAndSwapLong(null, absPtr + PIN_CNT_OFFSET, pinCnt, pinCnt - 1))
- break;
- }
-
+ private void onPageRelease() {
acquiredPages.decrementAndGet();
}
@@ -598,9 +566,9 @@ public class PageMemoryNoStoreImpl implements PageMemory {
pageIdx &= idxMask;
- long offset = pageIdx * sysPageSize;
+ long off = pageIdx * sysPageSize;
- return pagesBase + offset;
+ return pagesBase + off;
}
/**
@@ -626,20 +594,6 @@ public class PageMemoryNoStoreImpl implements PageMemory {
long absPtr = absolute(relPtr);
- // Prepare page to free.
- // First, swap pin counter down to -1.
- while (true) {
- long pinCnt = GridUnsafe.getLong(absPtr + PIN_CNT_OFFSET);
-
- assert pinCnt >= 0 : "pinCnt=" + pinCnt + ", relPtr=" + U.hexLong(relPtr);
-
- if (pinCnt > 0)
- throw new IllegalStateException("Releasing a page being in use: " + U.hexLong(relPtr));
-
- if (GridUnsafe.compareAndSwapLong(null, absPtr + PIN_CNT_OFFSET, 0, -1))
- break;
- }
-
// Second, write clean relative pointer instead of page ID.
writePageId(absPtr, relPtr);
http://git-wip-us.apache.org/repos/asf/ignite/blob/a481704b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageNoStoreImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageNoStoreImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageNoStoreImpl.java
index 5748acd..5908434 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageNoStoreImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageNoStoreImpl.java
@@ -33,9 +33,6 @@ import org.jetbrains.annotations.Nullable;
*/
public class PageNoStoreImpl implements Page {
/** */
- private int segIdx;
-
- /** */
private long absPtr;
/** */
@@ -47,23 +44,17 @@ public class PageNoStoreImpl implements Page {
/** */
private PageMemoryNoStoreImpl pageMem;
- /** Page for memory restore */
- private final boolean noTagCheck;
-
/**
- * @param segIdx Segment index.
* @param absPtr Absolute pointer.
*/
- public PageNoStoreImpl(
- PageMemoryNoStoreImpl pageMem, int segIdx, long absPtr, int cacheId, long pageId, boolean noTagCheck
+ PageNoStoreImpl(
+ PageMemoryNoStoreImpl pageMem, long absPtr, int cacheId, long pageId
) {
this.pageMem = pageMem;
- this.segIdx = segIdx;
this.absPtr = absPtr;
this.cacheId = cacheId;
this.pageId = pageId;
- this.noTagCheck = noTagCheck;
}
/**
@@ -103,20 +94,18 @@ public class PageNoStoreImpl implements Page {
/** {@inheritDoc} */
@Override public long getForWritePointer() {
- int tag = noTagCheck ? OffheapReadWriteLock.TAG_LOCK_ALWAYS : PageIdUtils.tag(pageId);
+ int tag = PageIdUtils.tag(pageId);
boolean locked = pageMem.writeLockPage(absPtr, tag);
- if (!locked && !noTagCheck)
+ if (!locked)
return 0L;
- assert locked;
-
return pointer();
}
/** {@inheritDoc} */
@Override public long tryGetForWritePointer() {
- int tag = noTagCheck ? OffheapReadWriteLock.TAG_LOCK_ALWAYS : PageIdUtils.tag(pageId);
+ int tag = PageIdUtils.tag(pageId);
if (pageMem.tryWriteLockPage(absPtr, tag))
return pointer();
@@ -151,38 +140,11 @@ public class PageNoStoreImpl implements Page {
pageMem.releasePage(this);
}
- /**
- * @return Segment index.
- */
- int segmentIndex() {
- return segIdx;
- }
-
- /**
- * @return Absolute pointer to the system page start.
- */
- long absolutePointer() {
- return absPtr;
- }
-
- /**
- * @param buf Byte buffer.
- * @return The given buffer back.
- */
- private ByteBuffer reset(ByteBuffer buf) {
- buf.order(PageMemory.NATIVE_BYTE_ORDER);
-
- buf.rewind();
-
- return buf;
- }
-
/** {@inheritDoc} */
@Override public String toString() {
SB sb = new SB("PageNoStoreImpl [absPtr=0x");
sb.appendHex(absPtr);
- sb.a(", segIdx=").a(segIdx);
sb.a(", cacheId=").a(cacheId);
sb.a(", pageId=0x").appendHex(pageId);
sb.a("]");
http://git-wip-us.apache.org/repos/asf/ignite/blob/a481704b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
index 4b1d464..5fc612c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
@@ -83,7 +83,7 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
protected final ConcurrentMap<Integer, CacheDataStore> partDataStores = new ConcurrentHashMap<>();
/** */
- protected final CacheDataStore removedStore = new CacheDataStoreImpl(-1, null, null, null);
+ protected final CacheDataStore rmvStore = new CacheDataStoreImpl(-1, null, null, null);
/** */
protected PendingEntriesTree pendingEntries;
@@ -1095,9 +1095,9 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
if (cmp != 0)
return cmp;
- KeySearchRow row0 = io.getLookupRow(this, buf, idx);
+ long link = ((RowLinkIO)io).getLink(buf, idx);
- return compareKeys(row0.key(), row.key());
+ return row.compareKey(cctx, link);
}
/** {@inheritDoc} */
@@ -1108,29 +1108,6 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
return rowStore.dataRow(hash, link);
}
-
- /**
- * @param key1 First key.
- * @param key2 Second key.
- * @return Compare result.
- * @throws IgniteCheckedException If failed.
- */
- private int compareKeys(CacheObject key1, CacheObject key2) throws IgniteCheckedException {
- byte[] bytes1 = key1.valueBytes(cctx.cacheObjectContext());
- byte[] bytes2 = key2.valueBytes(cctx.cacheObjectContext());
-
- int len = Math.min(bytes1.length, bytes2.length);
-
- for (int i = 0; i < len; i++) {
- byte b1 = bytes1[i];
- byte b2 = bytes2[i];
-
- if (b1 != b2)
- return b1 > b2 ? 1 : -1;
- }
-
- return Integer.compare(bytes1.length, bytes2.length);
- }
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/a481704b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/CacheDataRowAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/CacheDataRowAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/CacheDataRowAdapter.java
index d940d62..f559fd4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/CacheDataRowAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/CacheDataRowAdapter.java
@@ -73,6 +73,78 @@ public class CacheDataRowAdapter implements CacheDataRow {
}
/**
+ * Compare key with key of record, given by link.
+ *
+ * @param cctx Context.
+ * @param link Link to second record.
+ * @return compare result.
+ * @throws IgniteCheckedException if fails.
+ */
+ public int compareKey(GridCacheContext cctx, long link) throws IgniteCheckedException {
+ byte[] bytes = key().valueBytes(cctx.cacheObjectContext());
+
+ PageMemory pageMem = cctx.shared().database().pageMemory();
+
+ try (Page page = page(pageId(link), cctx)) {
+ long pageAddr = page.getForReadPointer(); // Non-empty data page must not be recycled.
+
+ assert pageAddr != 0L : link;
+
+ try {
+ DataPageIO io = DataPageIO.VERSIONS.forPage(pageAddr);
+
+ DataPagePayload data = io.readPayload(pageAddr,
+ itemId(link),
+ pageMem.pageSize());
+
+ link = data.nextLink();
+
+ if (link == 0) {
+ long addr = pageAddr + data.offset();
+
+ int len = PageUtils.getInt(addr, 0);
+
+ int size = Math.min(bytes.length, len);
+
+ addr += 5; // Skip length and type byte.
+
+ for (int i = 0; i < size; i++) {
+ byte b1 = PageUtils.getByte(addr, i);
+ byte b2 = bytes[i];
+
+ if (b1 != b2)
+ return b1 > b2 ? 1 : -1;
+ }
+
+ return Integer.compare(len, bytes.length);
+ }
+ }
+ finally {
+ page.releaseRead();
+ }
+ }
+
+ // TODO GG-11768.
+ CacheDataRowAdapter other = new CacheDataRowAdapter(link);
+ other.initFromLink(cctx, true);
+
+ byte[] bytes1 = other.key().valueBytes(cctx.cacheObjectContext());
+ byte[] bytes2 = key.valueBytes(cctx.cacheObjectContext());
+
+ int len = Math.min(bytes1.length, bytes2.length);
+
+ for (int i = 0; i < len; i++) {
+ byte b1 = bytes1[i];
+ byte b2 = bytes2[i];
+
+ if (b1 != b2)
+ return b1 > b2 ? 1 : -1;
+ }
+
+ return Integer.compare(bytes1.length, bytes2.length);
+ }
+
+ /**
* Read row from data pages.
*
* @param cctx Cache context.
http://git-wip-us.apache.org/repos/asf/ignite/blob/a481704b/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 91f1f63..98e2d68 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
@@ -216,7 +216,7 @@ public class IgniteCacheDatabaseSharedManager extends GridCacheSharedManagerAdap
true,
sizes);
- return new PageMemoryNoStoreImpl(log, memProvider, cctx, dbCfg.getPageSize());
+ return new PageMemoryNoStoreImpl(log, memProvider, cctx, dbCfg.getPageSize(), false);
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/a481704b/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 483b228..f03c5b4 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
@@ -273,7 +273,7 @@ public class PageMemoryNoLoadSelfTest extends GridCommonAbstractTest {
DirectMemoryProvider provider = new MappedFileMemoryProvider(log(), memDir, true,
sizes);
- return new PageMemoryNoStoreImpl(log(), provider, null, PAGE_SIZE);
+ return new PageMemoryNoStoreImpl(log(), provider, null, PAGE_SIZE, true);
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/a481704b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeReuseSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeReuseSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeReuseSelfTest.java
index 4996eef..e1d0da6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeReuseSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeReuseSelfTest.java
@@ -46,6 +46,9 @@ public class BPlusTreeReuseSelfTest extends BPlusTreeSelfTest {
assertTrue(TestReuseList.checkNoLocks());
}
+ /**
+ *
+ */
private static class TestReuseList extends ReuseListImpl {
/** */
private static ThreadLocal<Set<Long>> readLocks = new ThreadLocal<Set<Long>>() {
http://git-wip-us.apache.org/repos/asf/ignite/blob/a481704b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java
index b524b45..0358f5a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java
@@ -1408,7 +1408,7 @@ public class BPlusTreeSelfTest extends GridCommonAbstractTest {
for (int i = 0; i < sizes.length; i++)
sizes[i] = 1024 * MB / CPUS;
- PageMemory pageMem = new PageMemoryNoStoreImpl(log, new UnsafeMemoryProvider(sizes), null, PAGE_SIZE);
+ PageMemory pageMem = new PageMemoryNoStoreImpl(log, new UnsafeMemoryProvider(sizes), null, PAGE_SIZE, true);
pageMem.start();
http://git-wip-us.apache.org/repos/asf/ignite/blob/a481704b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/FreeListImplSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/FreeListImplSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/FreeListImplSelfTest.java
index ad5e78f..66987e2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/FreeListImplSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/FreeListImplSelfTest.java
@@ -316,7 +316,7 @@ public class FreeListImplSelfTest extends GridCommonAbstractTest {
for (int i = 0; i < sizes.length; i++)
sizes[i] = 1024 * MB / CPUS;
- PageMemory pageMem = new PageMemoryNoStoreImpl(log, new UnsafeMemoryProvider(sizes), null, pageSize);
+ PageMemory pageMem = new PageMemoryNoStoreImpl(log, new UnsafeMemoryProvider(sizes), null, pageSize, true);
pageMem.start();
http://git-wip-us.apache.org/repos/asf/ignite/blob/a481704b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/MetadataStorageSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/MetadataStorageSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/MetadataStorageSelfTest.java
index 252ea82..7eeda4b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/MetadataStorageSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/MetadataStorageSelfTest.java
@@ -160,6 +160,6 @@ public class MetadataStorageSelfTest extends GridCommonAbstractTest {
DirectMemoryProvider provider = new MappedFileMemoryProvider(log(), allocationPath, clean, sizes);
- return new PageMemoryNoStoreImpl(log, provider, null, PAGE_SIZE);
+ return new PageMemoryNoStoreImpl(log, provider, null, PAGE_SIZE, true);
}
}