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/16 14:12:00 UTC
[01/12] ignite git commit: ignite-gg-8.0.2.e2 mute test,
link to issue IGNITE-305
Repository: ignite
Updated Branches:
refs/heads/ignite-gg-11810-1 86896a81f -> 329c5cb4d
ignite-gg-8.0.2.e2 mute test, link to issue IGNITE-305
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f96c5903
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f96c5903
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f96c5903
Branch: refs/heads/ignite-gg-11810-1
Commit: f96c59039a8b5f7d2b8e8070fe1ca43183b4eaaf
Parents: 43eefb0
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Thu Jan 12 12:21:12 2017 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Thu Jan 12 12:21:12 2017 +0300
----------------------------------------------------------------------
.../cache/expiry/IgniteCacheExpiryPolicyAbstractTest.java | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/f96c5903/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyAbstractTest.java
index 0e2ed2d..4ceb1b6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyAbstractTest.java
@@ -37,13 +37,10 @@ import javax.cache.expiry.ModifiedExpiryPolicy;
import javax.cache.processor.EntryProcessor;
import javax.cache.processor.MutableEntry;
import org.apache.ignite.IgniteCache;
-import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.cache.CacheMemoryMode;
-import org.apache.ignite.cache.CachePeekMode;
import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.NearCacheConfiguration;
-import org.apache.ignite.internal.IgniteInterruptedCheckedException;
import org.apache.ignite.internal.IgniteKernal;
import org.apache.ignite.internal.processors.cache.GridCacheAdapter;
import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
@@ -52,7 +49,6 @@ import org.apache.ignite.internal.processors.cache.IgniteCacheAbstractTest;
import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtInvalidPartitionException;
import org.apache.ignite.internal.util.lang.GridAbsPredicate;
import org.apache.ignite.internal.util.typedef.F;
-import org.apache.ignite.internal.util.typedef.PAX;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.transactions.Transaction;
@@ -362,6 +358,8 @@ public abstract class IgniteCacheExpiryPolicyAbstractTest extends IgniteCacheAbs
* @throws Exception If failed.
*/
public void testAccess() throws Exception {
+ fail("https://issues.apache.org/jira/browse/IGNITE-305");
+
factory = new FactoryBuilder.SingletonFactory<>(new TestPolicy(60_000L, 61_000L, 62_000L));
startGrids();
[09/12] ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-gg-11810' into ignite-gg-11810-1
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-gg-11810' into ignite-gg-11810-1
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d4ccd898
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d4ccd898
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d4ccd898
Branch: refs/heads/ignite-gg-11810-1
Commit: d4ccd898bff2fa5dc622d1b852879a5a109edf04
Parents: 86896a8 fa28a2e
Author: sboikov <sb...@gridgain.com>
Authored: Mon Jan 16 16:52:14 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Jan 16 16:52:14 2017 +0300
----------------------------------------------------------------------
.../delta/DataPageInsertFragmentRecord.java | 5 +-
.../wal/record/delta/DataPageInsertRecord.java | 5 +-
.../wal/record/delta/DataPageRemoveRecord.java | 5 +-
.../delta/DataPageSetFreeListPageRecord.java | 3 +-
.../wal/record/delta/FixCountRecord.java | 3 +-
.../record/delta/FixLeftmostChildRecord.java | 3 +-
.../pagemem/wal/record/delta/FixRemoveId.java | 3 +-
.../wal/record/delta/InitNewPageRecord.java | 5 +-
.../wal/record/delta/InnerReplaceRecord.java | 3 +-
.../pagemem/wal/record/delta/InsertRecord.java | 3 +-
.../pagemem/wal/record/delta/MergeRecord.java | 3 +-
.../wal/record/delta/MetaPageAddRootRecord.java | 5 +-
.../wal/record/delta/MetaPageCutRootRecord.java | 5 +-
.../wal/record/delta/MetaPageInitRecord.java | 5 +-
.../record/delta/MetaPageInitRootRecord.java | 5 +-
.../delta/MetaPageUpdateLastAllocatedIndex.java | 3 +-
...aPageUpdateLastSuccessfulFullSnapshotId.java | 3 +-
.../MetaPageUpdateLastSuccessfulSnapshotId.java | 3 +-
.../delta/MetaPageUpdateNextSnapshotId.java | 3 +-
.../MetaPageUpdatePartitionDataRecord.java | 3 +-
.../wal/record/delta/NewRootInitRecord.java | 5 +-
.../wal/record/delta/PageDeltaRecord.java | 6 +-
.../delta/PageListMetaResetCountRecord.java | 3 +-
.../record/delta/PagesListAddPageRecord.java | 5 +-
.../delta/PagesListInitNewPageRecord.java | 7 +-
.../record/delta/PagesListRemovePageRecord.java | 3 +-
.../record/delta/PagesListSetNextRecord.java | 3 +-
.../delta/PagesListSetPreviousRecord.java | 3 +-
.../pagemem/wal/record/delta/RecycleRecord.java | 3 +-
.../pagemem/wal/record/delta/RemoveRecord.java | 3 +-
.../pagemem/wal/record/delta/ReplaceRecord.java | 3 +-
.../record/delta/SplitExistingPageRecord.java | 3 +-
.../record/delta/SplitForwardPageRecord.java | 3 +-
.../record/delta/TrackingPageDeltaRecord.java | 9 ++-
.../processors/cache/GridCacheAdapter.java | 2 +-
.../processors/cache/GridCacheMapEntry.java | 3 +-
.../cache/IgniteCacheOffheapManagerImpl.java | 44 ++++++++++
.../cache/database/MetadataStorage.java | 42 ++++++++++
.../cache/database/tree/io/BPlusIO.java | 12 +++
.../cache/database/tree/io/PageIO.java | 44 +++++++++-
.../cache/database/tree/io/PageMetaIO.java | 9 +++
.../cache/database/tree/io/TrackingPageIO.java | 84 ++++++++++----------
.../cache/database/tree/util/PageHandler.java | 36 +++++++++
.../apache/ignite/internal/util/GridUnsafe.java | 12 +++
.../resources/META-INF/classnames.properties | 2 -
.../internal/ClusterNodeMetricsSelfTest.java | 2 +
.../GridDeploymentMessageCountSelfTest.java | 3 +
.../cache/ClusterStateAbstractTest.java | 3 +-
.../database/tree/io/TrackingPageIOTest.java | 69 ++++++++--------
.../IgniteCacheExpiryPolicyAbstractTest.java | 6 +-
.../processors/database/BPlusTreeSelfTest.java | 11 +++
.../testsuites/IgniteComputeGridTestSuite.java | 1 -
.../resources/META-INF/classnames.properties | 16 +---
.../query/h2/database/H2TreeIndex.java | 2 +-
.../query/h2/database/io/H2InnerIO.java | 10 +++
.../query/h2/database/io/H2LeafIO.java | 10 +++
.../query/IgniteSqlSplitterSelfTest.java | 2 +-
.../IgniteDistributedJoinTestSuite.java | 17 ++++
58 files changed, 423 insertions(+), 154 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/d4ccd898/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/d4ccd898/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/MetadataStorage.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/d4ccd898/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/d4ccd898/modules/core/src/test/java/org/apache/ignite/internal/processors/database/BPlusTreeSelfTest.java
----------------------------------------------------------------------
[05/12] ignite git commit: ignite-gg-8.0.2.ea2 fix
IgniteCacheP2pUnmarshallingErrorTest.testResponseMessageOnUnmarshallingFailed
and IgniteCacheClientQueryReplicatedNodeRestartSelfTest.testRestarts
Posted by sb...@apache.org.
ignite-gg-8.0.2.ea2 fix IgniteCacheP2pUnmarshallingErrorTest.testResponseMessageOnUnmarshallingFailed and IgniteCacheClientQueryReplicatedNodeRestartSelfTest.testRestarts
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e1b84b41
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e1b84b41
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e1b84b41
Branch: refs/heads/ignite-gg-11810-1
Commit: e1b84b41bd4ae52631f17f79396d6921385c0dcc
Parents: 2254d37
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Fri Jan 13 19:27:47 2017 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Fri Jan 13 19:27:47 2017 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/cache/GridCacheAdapter.java | 2 +-
.../ignite/internal/processors/cache/GridCacheMapEntry.java | 3 +--
.../internal/processors/query/h2/database/H2TreeIndex.java | 5 ++---
3 files changed, 4 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e1b84b41/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 93270ea..2d688da 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -2180,7 +2180,7 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
ctx.evicts().touch(peekEx(key0), topVer);
}
- throw e;
+ return new GridFinishedFuture<>(e);
}
catch (IgniteCheckedException e) {
return new GridFinishedFuture<>(e);
http://git-wip-us.apache.org/repos/asf/ignite/blob/e1b84b41/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index 3363124..c1acb84 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@ -573,9 +573,8 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme
val = this.val;
if (val == null) {
- if (isStartVersion()) {
+ if (isStartVersion())
val = unswap(true, false);
- }
}
if (val != null) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/e1b84b41/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
index 31df27c..3268d9d 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
@@ -79,7 +79,7 @@ public class H2TreeIndex extends GridH2IndexBase {
name = BPlusTree.treeName(name, "H2Tree");
- if (!cctx.kernalContext().clientNode()) {
+ if (!cctx.kernalContext().clientNode() && cctx.affinityNode()) {
IgniteCacheDatabaseSharedManager dbMgr = cctx.shared().database();
RootPage page = cctx.offheap().rootPageForIndex(name);
@@ -87,8 +87,7 @@ public class H2TreeIndex extends GridH2IndexBase {
tree = new H2Tree(name, cctx.offheap().reuseListForIndex(name), cctx.cacheId(),
dbMgr.pageMemory(), cctx.shared().wal(), cctx.offheap().globalRemoveId(),
tbl.rowFactory(), page.pageId().pageId(), page.isAllocated()) {
- @Override
- protected int compare(BPlusIO<SearchRow> io, ByteBuffer buf, int idx, SearchRow row)
+ @Override protected int compare(BPlusIO<SearchRow> io, ByteBuffer buf, int idx, SearchRow row)
throws IgniteCheckedException {
return compareRows(getRow(io, buf, idx), row);
}
[10/12] ignite git commit: gg-11810
Posted by sb...@apache.org.
gg-11810
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/30918634
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/30918634
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/30918634
Branch: refs/heads/ignite-gg-11810-1
Commit: 30918634c4b2409f5b3ff29e46b7fb3bfae281aa
Parents: fa28a2e
Author: sboikov <sb...@gridgain.com>
Authored: Mon Jan 16 16:58:42 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Jan 16 16:58:42 2017 +0300
----------------------------------------------------------------------
.../main/java/org/apache/ignite/internal/pagemem/Page.java | 7 -------
.../apache/ignite/internal/pagemem/impl/PageNoStoreImpl.java | 7 -------
2 files changed, 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/30918634/modules/core/src/main/java/org/apache/ignite/internal/pagemem/Page.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/Page.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/Page.java
index 4ecad9e..2667e44 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/Page.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/Page.java
@@ -17,8 +17,6 @@
package org.apache.ignite.internal.pagemem;
-import java.nio.ByteBuffer;
-
/**
*
*/
@@ -50,11 +48,6 @@ public interface Page extends AutoCloseable {
/**
* @return ByteBuffer for modifying the page.
*/
- public ByteBuffer getForWrite();
-
- /**
- * @return ByteBuffer for modifying the page.
- */
public long getForWritePointer();
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/30918634/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 d68466f..b52df55 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
@@ -23,8 +23,6 @@ import org.apache.ignite.internal.pagemem.PageIdUtils;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
import org.apache.ignite.internal.util.typedef.internal.SB;
-import java.nio.ByteBuffer;
-
/**
*
*/
@@ -81,11 +79,6 @@ public class PageNoStoreImpl implements Page {
}
/** {@inheritDoc} */
- @Override public ByteBuffer getForWrite() {
- throw new UnsupportedOperationException();
- }
-
- /** {@inheritDoc} */
@Override public long getForWritePointer() {
int tag = PageIdUtils.tag(pageId);
boolean locked = pageMem.writeLockPage(absPtr, tag);
[03/12] ignite git commit: ignite-gg-8.0.2.ea2 mute tests
Posted by sb...@apache.org.
ignite-gg-8.0.2.ea2 mute tests
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/00e88cc9
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/00e88cc9
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/00e88cc9
Branch: refs/heads/ignite-gg-11810-1
Commit: 00e88cc938b24d9f3dd13057ec5593fd72cce28e
Parents: 90f846a
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Fri Jan 13 12:16:43 2017 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Fri Jan 13 12:16:43 2017 +0300
----------------------------------------------------------------------
.../managers/deployment/GridDeploymentMessageCountSelfTest.java | 3 +++
.../internal/processors/cache/ClusterStateAbstractTest.java | 3 ++-
2 files changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/00e88cc9/modules/core/src/test/java/org/apache/ignite/internal/managers/deployment/GridDeploymentMessageCountSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/deployment/GridDeploymentMessageCountSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/deployment/GridDeploymentMessageCountSelfTest.java
index 20c5b93..b02dce0 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/managers/deployment/GridDeploymentMessageCountSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/deployment/GridDeploymentMessageCountSelfTest.java
@@ -126,6 +126,9 @@ public class GridDeploymentMessageCountSelfTest extends GridCommonAbstractTest {
* @throws Exception If failed.
*/
public void testCacheValueDeploymentOnPut() throws Exception {
+ //TODO GG-11141
+ fail();
+
ClassLoader ldr = getExternalClassLoader();
Class valCls = ldr.loadClass(TEST_VALUE);
http://git-wip-us.apache.org/repos/asf/ignite/blob/00e88cc9/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClusterStateAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClusterStateAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClusterStateAbstractTest.java
index a454270..731d3a6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClusterStateAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/ClusterStateAbstractTest.java
@@ -280,7 +280,8 @@ public abstract class ClusterStateAbstractTest extends GridCommonAbstractTest {
* @throws Exception If fails.
*/
public void testDeactivationWithPendingLock() throws Exception {
- fail("Safe way for deactivate cluster must be implemented.");
+ //TODO GG-11851
+ fail();
startGrids(GRID_CNT);
[08/12] ignite git commit: gg-11810
Posted by sb...@apache.org.
gg-11810
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/fa28a2e5
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/fa28a2e5
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/fa28a2e5
Branch: refs/heads/ignite-gg-11810-1
Commit: fa28a2e5c78345ede3ac1aaa53d070e1b4ac4808
Parents: e81cfdb
Author: sboikov <sb...@gridgain.com>
Authored: Mon Jan 16 13:24:36 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Jan 16 16:23:27 2017 +0300
----------------------------------------------------------------------
.../delta/DataPageInsertFragmentRecord.java | 5 +-
.../wal/record/delta/DataPageInsertRecord.java | 5 +-
.../wal/record/delta/DataPageRemoveRecord.java | 5 +-
.../delta/DataPageSetFreeListPageRecord.java | 3 +-
.../wal/record/delta/FixCountRecord.java | 3 +-
.../record/delta/FixLeftmostChildRecord.java | 3 +-
.../pagemem/wal/record/delta/FixRemoveId.java | 3 +-
.../wal/record/delta/InitNewPageRecord.java | 5 +-
.../wal/record/delta/InnerReplaceRecord.java | 3 +-
.../pagemem/wal/record/delta/InsertRecord.java | 3 +-
.../pagemem/wal/record/delta/MergeRecord.java | 3 +-
.../wal/record/delta/MetaPageAddRootRecord.java | 5 +-
.../wal/record/delta/MetaPageCutRootRecord.java | 5 +-
.../wal/record/delta/MetaPageInitRecord.java | 5 +-
.../record/delta/MetaPageInitRootRecord.java | 5 +-
.../delta/MetaPageUpdateLastAllocatedIndex.java | 3 +-
...aPageUpdateLastSuccessfulFullSnapshotId.java | 3 +-
.../MetaPageUpdateLastSuccessfulSnapshotId.java | 3 +-
.../delta/MetaPageUpdateNextSnapshotId.java | 3 +-
.../MetaPageUpdatePartitionDataRecord.java | 3 +-
.../wal/record/delta/NewRootInitRecord.java | 5 +-
.../wal/record/delta/PageDeltaRecord.java | 6 +-
.../delta/PageListMetaResetCountRecord.java | 3 +-
.../record/delta/PagesListAddPageRecord.java | 5 +-
.../delta/PagesListInitNewPageRecord.java | 7 +-
.../record/delta/PagesListRemovePageRecord.java | 3 +-
.../record/delta/PagesListSetNextRecord.java | 3 +-
.../delta/PagesListSetPreviousRecord.java | 3 +-
.../pagemem/wal/record/delta/RecycleRecord.java | 3 +-
.../pagemem/wal/record/delta/RemoveRecord.java | 3 +-
.../pagemem/wal/record/delta/ReplaceRecord.java | 3 +-
.../record/delta/SplitExistingPageRecord.java | 3 +-
.../record/delta/SplitForwardPageRecord.java | 3 +-
.../record/delta/TrackingPageDeltaRecord.java | 9 ++-
.../cache/IgniteCacheOffheapManagerImpl.java | 44 ++++++++++
.../cache/database/MetadataStorage.java | 42 ++++++++++
.../cache/database/tree/io/BPlusIO.java | 12 +++
.../cache/database/tree/io/PageIO.java | 44 +++++++++-
.../cache/database/tree/io/PageMetaIO.java | 9 +++
.../cache/database/tree/io/TrackingPageIO.java | 84 ++++++++++----------
.../cache/database/tree/util/PageHandler.java | 36 +++++++++
.../apache/ignite/internal/util/GridUnsafe.java | 12 +++
.../database/tree/io/TrackingPageIOTest.java | 69 ++++++++--------
.../processors/database/BPlusTreeSelfTest.java | 11 +++
.../query/h2/database/io/H2InnerIO.java | 10 +++
.../query/h2/database/io/H2LeafIO.java | 10 +++
46 files changed, 392 insertions(+), 126 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageInsertFragmentRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageInsertFragmentRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageInsertFragmentRecord.java
index 919bf04..eeaabd1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageInsertFragmentRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageInsertFragmentRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.DataPageIO;
/**
@@ -49,10 +50,10 @@ public class DataPageInsertFragmentRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
DataPageIO io = DataPageIO.VERSIONS.forPage(pageAddr);
- io.addRowFragment(pageAddr, payload, lastLink, pageSize);
+ io.addRowFragment(pageAddr, payload, lastLink, pageMem.pageSize());
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageInsertRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageInsertRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageInsertRecord.java
index 95bf9d9..f23d57a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageInsertRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageInsertRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.DataPageIO;
/**
@@ -50,12 +51,12 @@ public class DataPageInsertRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
assert payload != null;
DataPageIO io = DataPageIO.VERSIONS.forPage(pageAddr);
- io.addRow(pageAddr, payload, pageSize);
+ io.addRow(pageAddr, payload, pageMem.pageSize());
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageRemoveRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageRemoveRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageRemoveRecord.java
index d0c9572..17c7fe8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageRemoveRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageRemoveRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.DataPageIO;
import org.apache.ignite.internal.util.typedef.internal.S;
@@ -47,11 +48,11 @@ public class DataPageRemoveRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize)
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr)
throws IgniteCheckedException {
DataPageIO io = DataPageIO.VERSIONS.forPage(pageAddr);
- io.removeRow(pageAddr, itemId, pageSize);
+ io.removeRow(pageAddr, itemId, pageMem.pageSize());
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageSetFreeListPageRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageSetFreeListPageRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageSetFreeListPageRecord.java
index b0bb90e..c835052 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageSetFreeListPageRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/DataPageSetFreeListPageRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.DataPageIO;
import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.DATA_PAGE_SET_FREE_LIST_PAGE;
@@ -48,7 +49,7 @@ public class DataPageSetFreeListPageRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
DataPageIO io = DataPageIO.VERSIONS.forPage(pageAddr);
io.setFreeListPageId(pageAddr, freeListPage);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixCountRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixCountRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixCountRecord.java
index aa23099..c727710 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixCountRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixCountRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.BPlusIO;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
@@ -39,7 +40,7 @@ public class FixCountRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
BPlusIO<?> io = PageIO.getBPlusIO(pageAddr);
io.setCount(pageAddr, cnt);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixLeftmostChildRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixLeftmostChildRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixLeftmostChildRecord.java
index 81a8d01..94155c9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixLeftmostChildRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixLeftmostChildRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.BPlusInnerIO;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
@@ -40,7 +41,7 @@ public class FixLeftmostChildRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
BPlusInnerIO<?> io = PageIO.getBPlusIO(pageAddr);
io.setLeft(pageAddr, 0, rightId);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixRemoveId.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixRemoveId.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixRemoveId.java
index b2284e5..b9900e1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixRemoveId.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/FixRemoveId.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.BPlusIO;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
@@ -40,7 +41,7 @@ public class FixRemoveId extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize)
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr)
throws IgniteCheckedException {
BPlusIO<?> io = PageIO.getBPlusIO(pageAddr);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InitNewPageRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InitNewPageRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InitNewPageRecord.java
index d1fd660..f5607dd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InitNewPageRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InitNewPageRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.internal.S;
@@ -53,10 +54,10 @@ public class InitNewPageRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
PageIO io = PageIO.getPageIO(ioType, ioVer);
- io.initNewPage(pageAddr, newPageId, pageSize);
+ io.initNewPage(pageAddr, newPageId, pageMem.pageSize());
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InnerReplaceRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InnerReplaceRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InnerReplaceRecord.java
index 26e2499..35d23c1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InnerReplaceRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InnerReplaceRecord.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteException;
+import org.apache.ignite.internal.pagemem.PageMemory;
/**
* Inner replace on remove.
@@ -56,7 +57,7 @@ public class InnerReplaceRecord<L> extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
throw new IgniteCheckedException("Inner replace record should not be logged.");
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InsertRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InsertRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InsertRecord.java
index 27ad5c1..fa598b2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InsertRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InsertRecord.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.pagemem.wal.record.delta;
import java.nio.ByteBuffer;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.BPlusIO;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.internal.S;
@@ -72,7 +73,7 @@ public class InsertRecord<L> extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
io.insert(pageAddr, idx, row, rowBytes, rightId);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MergeRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MergeRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MergeRecord.java
index 5932ee5..84770d5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MergeRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MergeRecord.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.pagemem.wal.record.delta;
import java.nio.ByteBuffer;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
@@ -63,7 +64,7 @@ public class MergeRecord<L> extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
throw new IgniteCheckedException("Merge record should not be logged.");
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageAddRootRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageAddRootRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageAddRootRecord.java
index db82bcf..176df33 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageAddRootRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageAddRootRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.BPlusMetaIO;
/**
@@ -39,10 +40,10 @@ public class MetaPageAddRootRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
BPlusMetaIO io = BPlusMetaIO.VERSIONS.forPage(pageAddr);
- io.addRoot(pageAddr, rootId, pageSize);
+ io.addRoot(pageAddr, rootId, pageMem.pageSize());
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageCutRootRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageCutRootRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageCutRootRecord.java
index 34d08c9..50ccddc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageCutRootRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageCutRootRecord.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.pagemem.wal.record.delta;
import java.nio.ByteBuffer;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.BPlusMetaIO;
/**
@@ -34,10 +35,10 @@ public class MetaPageCutRootRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
BPlusMetaIO io = BPlusMetaIO.VERSIONS.forPage(pageAddr);
- io.cutRoot(pageAddr, pageSize);
+ io.cutRoot(pageAddr, pageMem.pageSize());
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRecord.java
index f5d3d06..3d351a2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageMetaIO;
import org.apache.ignite.internal.processors.cache.database.tree.io.PagePartitionMetaIO;
@@ -74,12 +75,12 @@ public class MetaPageInitRecord extends InitNewPageRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
PageMetaIO io = ioType == PageIO.T_META ?
PageMetaIO.VERSIONS.forPage(pageAddr) :
PagePartitionMetaIO.VERSIONS.forPage(pageAddr);
- io.initNewPage(pageAddr, newPageId, pageSize);
+ io.initNewPage(pageAddr, newPageId, pageMem.pageSize());
io.setTreeRoot(pageAddr, treeRoot);
io.setReuseListRoot(pageAddr, reuseListRoot);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRootRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRootRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRootRecord.java
index 1c29c8c..4d56db0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRootRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRootRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.BPlusMetaIO;
/**
@@ -39,10 +40,10 @@ public class MetaPageInitRootRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
BPlusMetaIO io = BPlusMetaIO.VERSIONS.forPage(pageAddr);
- io.initRoot(pageAddr, rootId, pageSize);
+ io.initRoot(pageAddr, rootId, pageMem.pageSize());
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastAllocatedIndex.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastAllocatedIndex.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastAllocatedIndex.java
index fe2d55d..bd9b100 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastAllocatedIndex.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastAllocatedIndex.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageMetaIO;
@@ -38,7 +39,7 @@ public class MetaPageUpdateLastAllocatedIndex extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
assert PageIO.getType(pageAddr) == PageIO.T_META || PageIO.getType(pageAddr) == PageIO.T_PART_META;
PageMetaIO io = PageMetaIO.VERSIONS.forVersion(PageIO.getVersion(pageAddr));
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulFullSnapshotId.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulFullSnapshotId.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulFullSnapshotId.java
index db213de..e322b4f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulFullSnapshotId.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulFullSnapshotId.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageMetaIO;
/**
@@ -37,7 +38,7 @@ public class MetaPageUpdateLastSuccessfulFullSnapshotId extends PageDeltaRecord
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
PageMetaIO io = PageMetaIO.VERSIONS.forPage(pageAddr);
io.setLastSuccessfulFullSnapshotId(pageAddr, lastSuccessfulFullSnapshotId);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulSnapshotId.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulSnapshotId.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulSnapshotId.java
index 98502a4..df9d778 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulSnapshotId.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateLastSuccessfulSnapshotId.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageMetaIO;
/**
@@ -41,7 +42,7 @@ public class MetaPageUpdateLastSuccessfulSnapshotId extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
PageMetaIO io = PageMetaIO.VERSIONS.forPage(pageAddr);
io.setLastSuccessfulSnapshotId(pageAddr, lastSuccessfulSnapshotId);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateNextSnapshotId.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateNextSnapshotId.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateNextSnapshotId.java
index aafda11..1403bd7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateNextSnapshotId.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdateNextSnapshotId.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageMetaIO;
/**
@@ -37,7 +38,7 @@ public class MetaPageUpdateNextSnapshotId extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
PageMetaIO io = PageMetaIO.VERSIONS.forPage(pageAddr);
io.setNextSnapshotTag(pageAddr, nextSnapshotId);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdatePartitionDataRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdatePartitionDataRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdatePartitionDataRecord.java
index ecc2c16..66efc6f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdatePartitionDataRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageUpdatePartitionDataRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.PagePartitionMetaIO;
/**
@@ -84,7 +85,7 @@ public class MetaPageUpdatePartitionDataRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
PagePartitionMetaIO io = PagePartitionMetaIO.VERSIONS.forPage(pageAddr);
io.setUpdateCounter(pageAddr, updateCntr);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/NewRootInitRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/NewRootInitRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/NewRootInitRecord.java
index ce71ac7..26ee364 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/NewRootInitRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/NewRootInitRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.BPlusInnerIO;
/**
@@ -73,8 +74,8 @@ public class NewRootInitRecord<L> extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
- io.initNewRoot(pageAddr, newRootId, leftChildId, row, rowBytes, rightChildId, pageSize);
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
+ io.initNewRoot(pageAddr, newRootId, leftChildId, row, rowBytes, rightChildId, pageMem.pageSize());
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageDeltaRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageDeltaRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageDeltaRecord.java
index 9819232..ca52bd2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageDeltaRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageDeltaRecord.java
@@ -17,8 +17,8 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
-import java.nio.ByteBuffer;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.pagemem.wal.record.WALRecord;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.internal.S;
@@ -62,11 +62,11 @@ public abstract class PageDeltaRecord extends WALRecord {
* Apply changes from this delta to the given page.
* It is assumed that the given buffer represents page state right before this update.
*
+ * @param pageMem Page memory.
* @param pageAddr Page address.
- * @param pageSize Page size.
* @throws IgniteCheckedException If failed.
*/
- public abstract void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException;
+ public abstract void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException;
/** {@inheritDoc} */
@Override public String toString() {
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageListMetaResetCountRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageListMetaResetCountRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageListMetaResetCountRecord.java
index 2618328..16587d3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageListMetaResetCountRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PageListMetaResetCountRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.freelist.io.PagesListMetaIO;
/**
@@ -33,7 +34,7 @@ public class PageListMetaResetCountRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
PagesListMetaIO io = PagesListMetaIO.VERSIONS.forPage(pageAddr);
io.resetCount(pageAddr);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListAddPageRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListAddPageRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListAddPageRecord.java
index 38779f1..a503b46 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListAddPageRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListAddPageRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.freelist.io.PagesListNodeIO;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.internal.S;
@@ -50,10 +51,10 @@ public class PagesListAddPageRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
PagesListNodeIO io = PagesListNodeIO.VERSIONS.forPage(pageAddr);
- int cnt = io.addPage(pageAddr, dataPageId, pageSize);
+ int cnt = io.addPage(pageAddr, dataPageId, pageMem.pageSize());
assert cnt >= 0 : cnt;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListInitNewPageRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListInitNewPageRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListInitNewPageRecord.java
index 66aea1d..b035323 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListInitNewPageRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListInitNewPageRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.freelist.io.PagesListNodeIO;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
@@ -72,14 +73,14 @@ public class PagesListInitNewPageRecord extends InitNewPageRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
PagesListNodeIO io = PageIO.getPageIO(PageIO.T_PAGE_LIST_NODE, ioVer);
- io.initNewPage(pageAddr, pageId(), pageSize);
+ io.initNewPage(pageAddr, pageId(), pageMem.pageSize());
io.setPreviousId(pageAddr, prevPageId);
if (addDataPageId != 0L) {
- int cnt = io.addPage(pageAddr, addDataPageId, pageSize);
+ int cnt = io.addPage(pageAddr, addDataPageId, pageMem.pageSize());
assert cnt == 0 : cnt;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListRemovePageRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListRemovePageRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListRemovePageRecord.java
index d41eb09..26f832c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListRemovePageRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListRemovePageRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.freelist.io.PagesListNodeIO;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.internal.S;
@@ -50,7 +51,7 @@ public class PagesListRemovePageRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
PagesListNodeIO io = PagesListNodeIO.VERSIONS.forPage(pageAddr);
boolean rmvd = io.removePage(pageAddr, rmvdPageId);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListSetNextRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListSetNextRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListSetNextRecord.java
index 62f737a..c0bed60 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListSetNextRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListSetNextRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.freelist.io.PagesListNodeIO;
/**
@@ -46,7 +47,7 @@ public class PagesListSetNextRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
PagesListNodeIO io = PagesListNodeIO.VERSIONS.forPage(pageAddr);
io.setNextId(pageAddr, nextPageId);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListSetPreviousRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListSetPreviousRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListSetPreviousRecord.java
index 081bcb8..21c3ef2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListSetPreviousRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/PagesListSetPreviousRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.freelist.io.PagesListNodeIO;
/**
@@ -46,7 +47,7 @@ public class PagesListSetPreviousRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
PagesListNodeIO io = PagesListNodeIO.VERSIONS.forPage(pageAddr);
io.setPreviousId(pageAddr, prevPageId);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/RecycleRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/RecycleRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/RecycleRecord.java
index 6e75a5b..1737e12 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/RecycleRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/RecycleRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
/**
@@ -39,7 +40,7 @@ public class RecycleRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
PageIO.setPageId(pageAddr, newPageId);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/RemoveRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/RemoveRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/RemoveRecord.java
index 0a09ea0..6d278e9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/RemoveRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/RemoveRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.BPlusIO;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
import org.apache.ignite.internal.util.typedef.internal.S;
@@ -46,7 +47,7 @@ public class RemoveRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
BPlusIO<?> io = PageIO.getBPlusIO(pageAddr);
if (io.getCount(pageAddr) != cnt)
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/ReplaceRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/ReplaceRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/ReplaceRecord.java
index 266f208..757afe1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/ReplaceRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/ReplaceRecord.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.pagemem.wal.record.delta;
import java.nio.ByteBuffer;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.BPlusIO;
/**
@@ -55,7 +56,7 @@ public class ReplaceRecord<L> extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize)
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr)
throws IgniteCheckedException {
if (io.getCount(pageAddr) < idx)
throw new DeltaApplicationException("Index is greater than count: " + idx);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/SplitExistingPageRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/SplitExistingPageRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/SplitExistingPageRecord.java
index 2a43391..418d28b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/SplitExistingPageRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/SplitExistingPageRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.BPlusIO;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
@@ -49,7 +50,7 @@ public class SplitExistingPageRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
BPlusIO<?> io = PageIO.getBPlusIO(pageAddr);
io.splitExistingPage(pageAddr, mid, fwdId);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/SplitForwardPageRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/SplitForwardPageRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/SplitForwardPageRecord.java
index 8fdd3d4..39f2669 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/SplitForwardPageRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/SplitForwardPageRecord.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.pagemem.wal.record.delta;
import java.nio.ByteBuffer;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteException;
+import org.apache.ignite.internal.pagemem.PageMemory;
/**
* Split forward page record.
@@ -79,7 +80,7 @@ public class SplitForwardPageRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
throw new IgniteCheckedException("Split forward page record should not be logged.");
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/TrackingPageDeltaRecord.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/TrackingPageDeltaRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/TrackingPageDeltaRecord.java
index a76ed48..7cd0948 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/TrackingPageDeltaRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/TrackingPageDeltaRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.database.tree.io.TrackingPageIO;
/**
@@ -69,8 +70,12 @@ public class TrackingPageDeltaRecord extends PageDeltaRecord {
}
/** {@inheritDoc} */
- @Override public void applyDelta(long pageAddr, int pageSize) throws IgniteCheckedException {
- TrackingPageIO.VERSIONS.forPage(pageAddr).markChanged(pageAddr, pageIdToMark, nextSnapshotId, lastSuccessfulSnapshotId, pageSize);
+ @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws IgniteCheckedException {
+ TrackingPageIO.VERSIONS.forPage(pageAddr).markChanged(pageMem.pageBuffer(pageAddr),
+ pageIdToMark,
+ nextSnapshotId,
+ lastSuccessfulSnapshotId,
+ pageMem.pageSize());
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/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 3cf42e1..f7e46d8 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
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.processors.cache;
+import java.nio.ByteBuffer;
import java.util.Collections;
import java.util.Iterator;
import java.util.Set;
@@ -1304,6 +1305,17 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
}
/**
+ * @param buf Buffer.
+ * @param off Offset.
+ * @param link Link.
+ * @param hash Hash.
+ */
+ private static void store0(ByteBuffer buf, int off, long link, int hash) {
+ buf.putLong(off, link);
+ buf.putInt(off + 8, hash);
+ }
+
+ /**
* @param pageAddr Page address.
* @param off Offset.
* @param link Link.
@@ -1350,6 +1362,13 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
}
/** {@inheritDoc} */
+ @Override public void storeByOffset(ByteBuffer buf, int off, CacheSearchRow row) throws IgniteCheckedException {
+ assert row.link() != 0;
+
+ store0(buf, off, row.link(), row.hash());
+ }
+
+ /** {@inheritDoc} */
@Override public void storeByOffset(long pageAddr, int off, CacheSearchRow row) {
assert row.link() != 0;
@@ -1403,6 +1422,13 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
}
/** {@inheritDoc} */
+ @Override public void storeByOffset(ByteBuffer buf, int off, CacheSearchRow row) throws IgniteCheckedException {
+ assert row.link() != 0;
+
+ store0(buf, off, row.link(), row.hash());
+ }
+
+ /** {@inheritDoc} */
@Override public void storeByOffset(long pageAddr, int off, CacheSearchRow row) {
assert row.link() != 0;
@@ -1587,6 +1613,15 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
}
/** {@inheritDoc} */
+ @Override public void storeByOffset(ByteBuffer buf, int off, PendingRow row) throws IgniteCheckedException {
+ assert row.link != 0;
+ assert row.expireTime != 0;
+
+ buf.putLong(off, row.expireTime);
+ buf.putLong(off + 8, row.link);
+ }
+
+ /** {@inheritDoc} */
@Override public void storeByOffset(long pageAddr, int off, PendingRow row) throws IgniteCheckedException {
assert row.link != 0;
assert row.expireTime != 0;
@@ -1646,6 +1681,15 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
}
/** {@inheritDoc} */
+ @Override public void storeByOffset(ByteBuffer buf, int off, PendingRow row) throws IgniteCheckedException {
+ assert row.link != 0;
+ assert row.expireTime != 0;
+
+ buf.putLong(off, row.expireTime);
+ buf.putLong(off + 8, row.link);
+ }
+
+ /** {@inheritDoc} */
@Override public void storeByOffset(long pageAddr, int off, PendingRow row) throws IgniteCheckedException {
assert row.link != 0;
assert row.expireTime != 0;
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/MetadataStorage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/MetadataStorage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/MetadataStorage.java
index 6d7b60c..cf6decb 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/MetadataStorage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/MetadataStorage.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.processors.cache.database;
+import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.ignite.IgniteCheckedException;
@@ -247,6 +248,37 @@ public class MetadataStorage implements MetaStore {
/**
* Store row to buffer.
*
+ * @param buf Buffer.
+ * @param off Offset in buf.
+ * @param row Row to store.
+ */
+ private static void storeRow(
+ final ByteBuffer buf,
+ final int off,
+ final IndexItem row
+ ) {
+ int origPos = buf.position();
+
+ try {
+ buf.position(off);
+
+ // Index name length.
+ buf.put((byte)row.idxName.length);
+
+ // Index name.
+ buf.put(row.idxName);
+
+ // Page ID.
+ buf.putLong(row.pageId);
+ }
+ finally {
+ buf.position(origPos);
+ }
+ }
+
+ /**
+ * Store row to buffer.
+ *
* @param pageAddr Page address.
* @param off Offset in buf.
* @param row Row to store.
@@ -348,6 +380,11 @@ public class MetadataStorage implements MetaStore {
}
/** {@inheritDoc} */
+ @Override public void storeByOffset(ByteBuffer buf, int off, IndexItem row) throws IgniteCheckedException {
+ storeRow(buf, off, row);
+ }
+
+ /** {@inheritDoc} */
@Override public void storeByOffset(long pageAddr, int off, IndexItem row) throws IgniteCheckedException {
storeRow(pageAddr, off, row);
}
@@ -389,6 +426,11 @@ public class MetadataStorage implements MetaStore {
}
/** {@inheritDoc} */
+ @Override public void storeByOffset(ByteBuffer buf, int off, IndexItem row) throws IgniteCheckedException {
+ storeRow(buf, off, row);
+ }
+
+ /** {@inheritDoc} */
@Override public void storeByOffset(long buf, int off, IndexItem row) throws IgniteCheckedException {
storeRow(buf, off, row);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusIO.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusIO.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusIO.java
index 0cf1385..c34296a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusIO.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusIO.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.processors.cache.database.tree.io;
+import java.nio.ByteBuffer;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.pagemem.PageUtils;
import org.apache.ignite.internal.processors.cache.database.tree.BPlusTree;
@@ -197,6 +198,17 @@ public abstract class BPlusIO<L> extends PageIO {
*/
public abstract void storeByOffset(long pageAddr, int off, L row) throws IgniteCheckedException;
+
+ /**
+ * Store the needed info about the row in the page. Leaf and inner pages can store different info.
+ *
+ * @param buf Buffer.
+ * @param off Offset in bytes.
+ * @param row Lookup or full row.
+ * @throws IgniteCheckedException If failed.
+ */
+ public abstract void storeByOffset(ByteBuffer buf, int off, L row) throws IgniteCheckedException;
+
/**
* Store row info from the given source.
*
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageIO.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageIO.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageIO.java
index 5ffc1b2..f6ac905 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageIO.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageIO.java
@@ -17,8 +17,10 @@
package org.apache.ignite.internal.processors.cache.database.tree.io;
+import java.nio.ByteBuffer;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.pagemem.Page;
+import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.pagemem.PageUtils;
import org.apache.ignite.internal.pagemem.wal.IgniteWriteAheadLogManager;
import org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl;
@@ -58,7 +60,7 @@ import org.apache.ignite.internal.processors.cache.database.tree.util.PageLockLi
*
* 7. It is almost always preferable to read or write (especially write) page contents using
* static methods on {@link PageHandler}. To just initialize new page use
- * {@link PageHandler#initPage(Page, PageLockListener, PageIO, IgniteWriteAheadLogManager)}
+ * {@link PageHandler#initPage(PageMemory, Page, PageLockListener, PageIO, IgniteWriteAheadLogManager)}
* method with needed IO instance.
*/
public abstract class PageIO {
@@ -164,6 +166,14 @@ public abstract class PageIO {
}
/**
+ * @param buf Buffer.
+ * @return Page type.
+ */
+ public static int getType(ByteBuffer buf) {
+ return buf.getShort(TYPE_OFF) & 0xFFFF;
+ }
+
+ /**
* @param pageAddr Page addres.
* @return Page type.
*/
@@ -182,6 +192,14 @@ public abstract class PageIO {
}
/**
+ * @param buf Buffer.
+ * @return Version.
+ */
+ public static int getVersion(ByteBuffer buf) {
+ return buf.getShort(VER_OFF) & 0xFFFF;
+ }
+
+ /**
* @param pageAddr Page address.
* @return Version.
*/
@@ -200,6 +218,14 @@ public abstract class PageIO {
}
/**
+ * @param buf Buffer.
+ * @return Page ID.
+ */
+ public static long getPageId(ByteBuffer buf) {
+ return buf.getLong(PAGE_ID_OFF);
+ }
+
+ /**
* @param pageAddr Page address.
* @return Page ID.
*/
@@ -234,6 +260,22 @@ public abstract class PageIO {
}
/**
+ * @param buf Buffer.
+ * @return Checksum.
+ */
+ public static int getCrc(ByteBuffer buf) {
+ return buf.getInt(CRC_OFF);
+ }
+
+ /**
+ * @param buf Buffer.
+ * @param crc Checksum.
+ */
+ public static void setCrc(ByteBuffer buf, int crc) {
+ buf.putInt(CRC_OFF, crc);
+ }
+
+ /**
* Registers this B+Tree IO versions.
*
* @param innerIOs Inner IO versions.
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
index 11a2643..e768f47 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
@@ -17,7 +17,9 @@
package org.apache.ignite.internal.processors.cache.database.tree.io;
+import java.nio.ByteBuffer;
import org.apache.ignite.internal.pagemem.PageUtils;
+import org.jetbrains.annotations.NotNull;
/**
*
@@ -185,6 +187,13 @@ public class PageMetaIO extends PageIO {
}
/**
+ * @param buf Buffer.
+ */
+ public int getLastAllocatedIndex(@NotNull ByteBuffer buf) {
+ return buf.getInt(LAST_ALLOCATED_INDEX_OFF);
+ }
+
+ /**
* @param pageAddr Page address.
*/
public int getLastAllocatedIndex(long pageAddr) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIO.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIO.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIO.java
index 6ecd9ee..136ebff 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIO.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIO.java
@@ -17,8 +17,8 @@
package org.apache.ignite.internal.processors.cache.database.tree.io;
+import java.nio.ByteBuffer;
import org.apache.ignite.internal.pagemem.PageIdUtils;
-import org.apache.ignite.internal.pagemem.PageUtils;
import org.apache.ignite.internal.processors.cache.database.tree.util.PageHandler;
/**
@@ -71,13 +71,13 @@ public class TrackingPageIO extends PageIO {
/**
* Will mark pageId as changed for next (!) snapshotId
*
- * @param pageAddr Page address.
+ * @param buf Buffer.
* @param pageId Page id.
* @param nextSnapshotTag tag of next snapshot.
* @param pageSize Page size.
*/
- public boolean markChanged(long pageAddr, long pageId, long nextSnapshotTag, long lastSuccessfulSnapshotTag, int pageSize) {
- validateSnapshotId(pageAddr, nextSnapshotTag, lastSuccessfulSnapshotTag, pageSize);
+ public boolean markChanged(ByteBuffer buf, long pageId, long nextSnapshotTag, long lastSuccessfulSnapshotTag, int pageSize) {
+ validateSnapshotId(buf, nextSnapshotTag, lastSuccessfulSnapshotTag, pageSize);
int cntOfPage = countOfPageToTrack(pageSize);
@@ -87,7 +87,7 @@ public class TrackingPageIO extends PageIO {
int idx = sizeOff + SIZE_FIELD_SIZE + (idxToUpdate >> 3);
- byte byteToUpdate = PageUtils.getByte(pageAddr, idx);
+ byte byteToUpdate = buf.get(idx);
int updateTemplate = 1 << (idxToUpdate & 0b111);
@@ -96,28 +96,28 @@ public class TrackingPageIO extends PageIO {
if (byteToUpdate == newVal)
return false;
- PageUtils.putByte(pageAddr, idx, newVal);
+ buf.put(idx, newVal);
- short newSize = (short)(PageUtils.getShort(pageAddr, sizeOff) + 1);
+ short newSize = (short)(buf.getShort(sizeOff) + 1);
- PageUtils.putShort(pageAddr, sizeOff, newSize);
+ buf.putShort(sizeOff, newSize);
- assert newSize == countOfChangedPage(pageAddr, nextSnapshotTag, pageSize);
+ assert newSize == countOfChangedPage(buf, nextSnapshotTag, pageSize);
return true;
}
/**
- * @param pageAddr Page address.
+ * @param buf Buffer.
* @param nextSnapshotTag Next snapshot id.
* @param lastSuccessfulSnapshotId Last successful snapshot id.
* @param pageSize Page size.
*/
- private void validateSnapshotId(long pageAddr, long nextSnapshotTag, long lastSuccessfulSnapshotId, int pageSize) {
+ private void validateSnapshotId(ByteBuffer buf, long nextSnapshotTag, long lastSuccessfulSnapshotId, int pageSize) {
assert nextSnapshotTag != lastSuccessfulSnapshotId : "nextSnapshotTag = " + nextSnapshotTag +
", lastSuccessfulSnapshotId = " + lastSuccessfulSnapshotId;
- long last = getLastSnapshotTag(pageAddr);
+ long last = getLastSnapshotTag(buf);
assert last <= nextSnapshotTag : "last = " + last + ", nextSnapshotTag = " + nextSnapshotTag;
@@ -127,9 +127,9 @@ public class TrackingPageIO extends PageIO {
int cntOfPage = countOfPageToTrack(pageSize);
if (last <= lastSuccessfulSnapshotId) { //we can drop our data
- PageUtils.putLong(pageAddr, LAST_SNAPSHOT_TAG_OFFSET, nextSnapshotTag);
+ buf.putLong(LAST_SNAPSHOT_TAG_OFFSET, nextSnapshotTag);
- PageHandler.zeroMemory(pageAddr, SIZE_FIELD_OFFSET, pageSize - SIZE_FIELD_OFFSET);
+ PageHandler.zeroMemory(buf, SIZE_FIELD_OFFSET, buf.capacity() - SIZE_FIELD_OFFSET);
} else { //we can't drop data, it is still necessary for incremental snapshots
int len = cntOfPage >> 3;
@@ -139,55 +139,55 @@ public class TrackingPageIO extends PageIO {
if (last - lastSuccessfulSnapshotId == 1) { //we should keep only data in last half
//new data will be written in the same half, we should move old data to another half
if ((nextSnapshotTag - last) % 2 == 0)
- PageHandler.copyMemory(pageAddr, pageAddr, sizeOff, sizeOff2, len + SIZE_FIELD_SIZE);
+ PageHandler.copyMemory(buf, buf, sizeOff, sizeOff2, len + SIZE_FIELD_SIZE);
} else { //last - lastSuccessfulSnapshotId > 1, e.g. we should merge two half in one
int newSize = 0;
int i = 0;
for (; i < len - 8; i += 8) {
- long newVal = PageUtils.getLong(pageAddr, sizeOff + SIZE_FIELD_SIZE + i) | PageUtils.getLong(pageAddr, sizeOff2 + SIZE_FIELD_SIZE + i);
+ long newVal = buf.getLong(sizeOff + SIZE_FIELD_SIZE + i) | buf.getLong(sizeOff2 + SIZE_FIELD_SIZE + i);
newSize += Long.bitCount(newVal);
- PageUtils.putLong(pageAddr, sizeOff2 + SIZE_FIELD_SIZE + i, newVal);
+ buf.putLong(sizeOff2 + SIZE_FIELD_SIZE + i, newVal);
}
for (; i < len; i ++) {
- byte newVal = (byte)(PageUtils.getByte(pageAddr, sizeOff + SIZE_FIELD_SIZE + i) | PageUtils.getByte(pageAddr, sizeOff2 + SIZE_FIELD_SIZE + i));
+ byte newVal = (byte) (buf.get(sizeOff + SIZE_FIELD_SIZE + i) | buf.get(sizeOff2 + SIZE_FIELD_SIZE + i));
newSize += Integer.bitCount(newVal & 0xFF);
- PageUtils.putByte(pageAddr, sizeOff2 + SIZE_FIELD_SIZE + i, newVal);
+ buf.put(sizeOff2 + SIZE_FIELD_SIZE + i, newVal);
}
- PageUtils.putShort(pageAddr, sizeOff2, (short)newSize);
+ buf.putShort(sizeOff2, (short)newSize);
}
- PageUtils.putLong(pageAddr, LAST_SNAPSHOT_TAG_OFFSET, nextSnapshotTag);
+ buf.putLong(LAST_SNAPSHOT_TAG_OFFSET, nextSnapshotTag);
- PageHandler.zeroMemory(pageAddr, sizeOff, len + SIZE_FIELD_SIZE);
+ PageHandler.zeroMemory(buf, sizeOff, len + SIZE_FIELD_SIZE);
}
}
/**
- * @param pageAddr Page address.
+ * @param buf Buffer.
*/
- long getLastSnapshotTag(long pageAddr) {
- return PageUtils.getLong(pageAddr, LAST_SNAPSHOT_TAG_OFFSET);
+ long getLastSnapshotTag(ByteBuffer buf) {
+ return buf.getLong(LAST_SNAPSHOT_TAG_OFFSET);
}
/**
* Check that pageId was marked as changed between previous snapshot finish and current snapshot start.
*
- * @param pageAddr Page address.
+ * @param buf Buffer.
* @param pageId Page id.
* @param curSnapshotTag Snapshot tag.
* @param pageSize Page size.
*/
- public boolean wasChanged(long pageAddr, long pageId, long curSnapshotTag, long lastSuccessfulSnapshotTag, int pageSize) {
- validateSnapshotId(pageAddr, curSnapshotTag + 1, lastSuccessfulSnapshotTag, pageSize);
+ public boolean wasChanged(ByteBuffer buf, long pageId, long curSnapshotTag, long lastSuccessfulSnapshotTag, int pageSize) {
+ validateSnapshotId(buf, curSnapshotTag + 1, lastSuccessfulSnapshotTag, pageSize);
- if (countOfChangedPage(pageAddr, curSnapshotTag, pageSize) < 1)
+ if (countOfChangedPage(buf, curSnapshotTag, pageSize) < 1)
return false;
int cntOfPage = countOfPageToTrack(pageSize);
@@ -197,9 +197,9 @@ public class TrackingPageIO extends PageIO {
byte byteToTest;
if (useLeftHalf(curSnapshotTag))
- byteToTest = PageUtils.getByte(pageAddr, BITMAP_OFFSET + (idxToTest >> 3));
+ byteToTest = buf.get(BITMAP_OFFSET + (idxToTest >> 3));
else
- byteToTest = PageUtils.getByte(pageAddr, BITMAP_OFFSET + SIZE_FIELD_SIZE + ((idxToTest + cntOfPage) >> 3));
+ byteToTest = buf.get(BITMAP_OFFSET + SIZE_FIELD_SIZE + ((idxToTest + cntOfPage) >> 3));
int testTemplate = 1 << (idxToTest & 0b111);
@@ -207,22 +207,22 @@ public class TrackingPageIO extends PageIO {
}
/**
- * @param pageAddr Page address.
+ * @param buf Buffer.
* @param snapshotTag Snapshot tag.
* @param pageSize Page size.
*
* @return count of pages which were marked as change for given snapshotTag
*/
- public short countOfChangedPage(long pageAddr, long snapshotTag, int pageSize) {
- long dif = getLastSnapshotTag(pageAddr) - snapshotTag;
+ public short countOfChangedPage(ByteBuffer buf, long snapshotTag, int pageSize) {
+ long dif = getLastSnapshotTag(buf) - snapshotTag;
if (dif != 0 && dif != 1)
return -1;
if (useLeftHalf(snapshotTag))
- return PageUtils.getShort(pageAddr, SIZE_FIELD_OFFSET);
+ return buf.getShort(SIZE_FIELD_OFFSET);
else
- return PageUtils.getShort(pageAddr, BITMAP_OFFSET + (countOfPageToTrack(pageSize) >> 3));
+ return buf.getShort(BITMAP_OFFSET + (countOfPageToTrack(pageSize) >> 3));
}
/**
@@ -262,14 +262,14 @@ public class TrackingPageIO extends PageIO {
}
/**
- * @param pageAddr Page address.
+ * @param buf Buffer.
* @param start Start.
* @param curSnapshotTag Snapshot id.
* @param pageSize Page size.
* @return set pageId if it was changed or next closest one, if there is no changed page null will be returned
*/
- public Long findNextChangedPage(long pageAddr, long start, long curSnapshotTag, long lastSuccessfulSnapshotTag, int pageSize) {
- validateSnapshotId(pageAddr, curSnapshotTag + 1, lastSuccessfulSnapshotTag, pageSize);
+ public Long findNextChangedPage(ByteBuffer buf, long start, long curSnapshotTag, long lastSuccessfulSnapshotTag, int pageSize) {
+ validateSnapshotId(buf, curSnapshotTag + 1, lastSuccessfulSnapshotTag, pageSize);
int cntOfPage = countOfPageToTrack(pageSize);
@@ -278,7 +278,7 @@ public class TrackingPageIO extends PageIO {
if (start == trackingPage)
return trackingPage;
- if (countOfChangedPage(pageAddr, curSnapshotTag, pageSize) <= 0)
+ if (countOfChangedPage(buf, curSnapshotTag, pageSize) <= 0)
return null;
int idxToStartTest = (PageIdUtils.pageIndex(start) - COUNT_OF_EXTRA_PAGE) % cntOfPage;
@@ -292,7 +292,7 @@ public class TrackingPageIO extends PageIO {
int stopIdx = zeroIdx + (cntOfPage >> 3);
while (idx < stopIdx) {
- byte byteToTest = PageUtils.getByte(pageAddr, idx);
+ byte byteToTest = buf.get(idx);
if (byteToTest != 0) {
int foundSetBit;
@@ -302,7 +302,7 @@ public class TrackingPageIO extends PageIO {
PageIdUtils.flag(start),
PageIdUtils.pageIndex(trackingPage) + ((idx - zeroIdx) << 3) + foundSetBit);
- assert wasChanged(pageAddr, foundPageId, curSnapshotTag, lastSuccessfulSnapshotTag, pageSize);
+ assert wasChanged(buf, foundPageId, curSnapshotTag, lastSuccessfulSnapshotTag, pageSize);
assert trackingPageFor(foundPageId, pageSize) == trackingPage;
return foundPageId;
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java
index 3e6e637..97b5a04 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.processors.cache.database.tree.util;
+import java.nio.ByteBuffer;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.pagemem.Page;
import org.apache.ignite.internal.pagemem.PageMemory;
@@ -286,6 +287,41 @@ public abstract class PageHandler<X, R> {
}
/**
+ * @param src Source.
+ * @param dst Destination.
+ * @param srcOff Source offset in bytes.
+ * @param dstOff Destination offset in bytes.
+ * @param cnt Bytes count to copy.
+ */
+ public static void copyMemory(ByteBuffer src, ByteBuffer dst, long srcOff, long dstOff, long cnt) {
+ byte[] srcArr = src.hasArray() ? src.array() : null;
+ byte[] dstArr = dst.hasArray() ? dst.array() : null;
+ long srcArrOff = src.hasArray() ? src.arrayOffset() + GridUnsafe.BYTE_ARR_OFF : 0;
+ long dstArrOff = dst.hasArray() ? dst.arrayOffset() + GridUnsafe.BYTE_ARR_OFF : 0;
+
+ long srcPtr = src.isDirect() ? GridUnsafe.bufferAddress(src) : 0;
+ long dstPtr = dst.isDirect() ? GridUnsafe.bufferAddress(dst) : 0;
+
+ GridUnsafe.copyMemory(srcArr, srcPtr + srcArrOff + srcOff, dstArr, dstPtr + dstArrOff + dstOff, cnt);
+ }
+
+ /**
+ * Will zero memory in buf
+ * @param buf Buffer.
+ * @param off Offset.
+ * @param len Length.
+ */
+ public static void zeroMemory(ByteBuffer buf, int off, int len) {
+ if (buf.isDirect())
+ GridUnsafe.setMemory(GridUnsafe.bufferAddress(buf) + off, len, (byte)0);
+
+ else {
+ for (int i = off; i < off + len; i++)
+ buf.put(i, (byte)0); //TODO Optimize!
+ }
+ }
+
+ /**
* @param srcAddr Source.
* @param dstAddr Destination.
* @param srcOff Source offset in bytes.
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
index 783ab96..1926f01 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.util;
import java.lang.reflect.Field;
+import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.security.AccessController;
import java.security.PrivilegedActionException;
@@ -25,6 +26,7 @@ import java.security.PrivilegedExceptionAction;
import org.apache.ignite.IgniteSystemProperties;
import sun.misc.Unsafe;
+import sun.nio.ch.DirectBuffer;
/**
* <p>Wrapper for {@link sun.misc.Unsafe} class.</p>
@@ -1602,4 +1604,14 @@ public abstract class GridUnsafe {
UNSAFE.putByte(addr, (byte)(val));
}
}
+
+ /**
+ * @param buf Direct buffer.
+ * @return Buffer memory address.
+ */
+ public static long bufferAddress(ByteBuffer buf) {
+ assert buf instanceof DirectBuffer : buf;
+
+ return ((DirectBuffer)buf).address();
+ }
}
\ No newline at end of file
[12/12] ignite git commit: Merge remote-tracking branch
'remotes/community/ignite-gg-11810' into ignite-gg-11810-1
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/community/ignite-gg-11810' into ignite-gg-11810-1
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/329c5cb4
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/329c5cb4
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/329c5cb4
Branch: refs/heads/ignite-gg-11810-1
Commit: 329c5cb4d8acf1fe231a819a7617628a95131e97
Parents: 173f3d6 3091863
Author: sboikov <sb...@gridgain.com>
Authored: Mon Jan 16 17:11:44 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Jan 16 17:11:44 2017 +0300
----------------------------------------------------------------------
.../main/java/org/apache/ignite/internal/pagemem/Page.java | 7 -------
.../apache/ignite/internal/pagemem/impl/PageNoStoreImpl.java | 7 -------
2 files changed, 14 deletions(-)
----------------------------------------------------------------------
[11/12] ignite git commit: gg-11810
Posted by sb...@apache.org.
gg-11810
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/173f3d6f
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/173f3d6f
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/173f3d6f
Branch: refs/heads/ignite-gg-11810-1
Commit: 173f3d6f1ab5105cced0fa1ece2f10f054fd110b
Parents: d4ccd89
Author: sboikov <sb...@gridgain.com>
Authored: Mon Jan 16 17:06:44 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Jan 16 17:06:44 2017 +0300
----------------------------------------------------------------------
.../ignite/internal/pagemem/PageMemory.java | 4 -
.../pagemem/impl/PageMemoryNoStoreImpl.java | 17 ---
.../cache/IgniteCacheOffheapManagerImpl.java | 48 ++++-----
.../cache/database/CacheDataRowAdapter.java | 54 +++++-----
.../cache/database/DataStructure.java | 8 --
.../cache/database/tree/BPlusTree.java | 104 +++++++++----------
.../cache/database/tree/util/PageHandler.java | 23 ----
7 files changed, 100 insertions(+), 158 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/173f3d6f/modules/core/src/main/java/org/apache/ignite/internal/pagemem/PageMemory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/PageMemory.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/PageMemory.java
index f90e718..cfee19f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/PageMemory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/PageMemory.java
@@ -38,10 +38,6 @@ public interface PageMemory extends LifecycleAware, PageIdAllocator {
*/
public Page page(int cacheId, long pageId) throws IgniteCheckedException;
- public long readLockPage0(int cacheId, long pageId);
-
- public void readUnlockPage0(long pageAddr);
-
/**
* @see #page(int, long)
* Will not read page from file if it is not present in memory.
http://git-wip-us.apache.org/repos/asf/ignite/blob/173f3d6f/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 fd0ae75..41e401d 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
@@ -365,23 +365,6 @@ public class PageMemoryNoStoreImpl implements PageMemory {
return rwLock.readLock(absPtr + LOCK_OFFSET, tag);
}
- @Override public long readLockPage0(int cacheId, long pageId) {
- int pageIdx = PageIdUtils.pageIndex(pageId);
-
- Segment seg = segment(pageIdx);
-
- long absPtr = seg.absolute(pageIdx);
-
- if (readLockPage(absPtr, PageIdUtils.tag(pageId)))
- return absPtr + PageMemoryNoStoreImpl.PAGE_OVERHEAD;
-
- return 0;
- }
-
- @Override public void readUnlockPage0(long pageAddr) {
- readUnlockPage(pageAddr - PAGE_OVERHEAD);
- }
-
/**
* @param absPtr Page absolute address.
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/173f3d6f/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 c0c3ea1..45cef13 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
@@ -1205,41 +1205,41 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
PageMemory pageMem = cctx.shared().database().pageMemory();
-// try (Page page = page(pageId(link))) {
-// }
- long pageAddr = pageMem.readLockPage0(0, pageId(link)); // Non-empty data page must not be recycled.
+ try (Page page = page(pageId(link))) {
+ long pageAddr = page.getForReadPointer(); // Non-empty data page must not be recycled.
- assert pageAddr != 0L : link;
+ assert pageAddr != 0L : link;
- try {
- DataPageIO io = DataPageIO.VERSIONS.forPage(pageAddr);
+ try {
+ DataPageIO io = DataPageIO.VERSIONS.forPage(pageAddr);
- DataPagePayload data = io.readPayload(pageAddr,
- itemId(link),
- pageMem.pageSize());
+ DataPagePayload data = io.readPayload(pageAddr,
+ itemId(link),
+ pageMem.pageSize());
- if (data.nextLink() == 0) {
- long addr = pageAddr + data.offset();
+ if (data.nextLink() == 0) {
+ long addr = pageAddr + data.offset();
- int len = PageUtils.getInt(addr, 0);
+ int len = PageUtils.getInt(addr, 0);
- int size = Math.min(bytes.length, len);
+ int size = Math.min(bytes.length, len);
- addr += 5; // Skip length and type byte.
+ addr += 5; // Skip length and type byte.
- for (int i = 0; i < size; i++) {
- byte b1 = PageUtils.getByte(addr, i);
- byte b2 = bytes[i];
+ 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;
- }
+ if (b1 != b2)
+ return b1 > b2 ? 1 : -1;
+ }
- return Integer.compare(len, bytes.length);
+ return Integer.compare(len, bytes.length);
+ }
+ }
+ finally {
+ page.releaseRead();
}
- }
- finally {
- pageMem.readUnlockPage0(pageAddr);
}
// TODO GG-11768.
http://git-wip-us.apache.org/repos/asf/ignite/blob/173f3d6f/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 3e215d5..5288aad 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
@@ -93,45 +93,45 @@ public class CacheDataRowAdapter implements CacheDataRow {
do {
PageMemory pageMem = cctx.shared().database().pageMemory();
- long pageAddr = pageMem.readLockPage0(0, pageId(nextLink)); // Non-empty data page must not be recycled.
+ try (Page page = page(pageId(nextLink), cctx)) {
+ long pageAddr = page.getForReadPointer(); // Non-empty data page must not be recycled.
- assert pageAddr != 0L : nextLink;
+ assert pageAddr != 0L : nextLink;
- try {
- DataPageIO io = DataPageIO.VERSIONS.forPage(pageAddr);
+ try {
+ DataPageIO io = DataPageIO.VERSIONS.forPage(pageAddr);
- DataPagePayload data = io.readPayload(pageAddr,
- itemId(nextLink),
- pageMem.pageSize());
+ DataPagePayload data = io.readPayload(pageAddr,
+ itemId(nextLink),
+ pageMem.pageSize());
- nextLink = data.nextLink();
+ nextLink = data.nextLink();
- if (first) {
- if (nextLink == 0) {
- // Fast path for a single page row.
- readFullRow(coctx, pageAddr + data.offset(), keyOnly);
+ if (first) {
+ if (nextLink == 0) {
+ // Fast path for a single page row.
+ readFullRow(coctx, pageAddr + data.offset(), keyOnly);
- return;
- }
+ return;
+ }
- first = false;
- }
+ first = false;
+ }
- ByteBuffer buf = pageMem.pageBuffer(pageAddr);
+ ByteBuffer buf = pageMem.pageBuffer(pageAddr);
- buf.position(data.offset());
- buf.limit(data.offset() + data.payloadSize());
+ buf.position(data.offset());
+ buf.limit(data.offset() + data.payloadSize());
- incomplete = readFragment(coctx, buf, keyOnly, incomplete);
+ incomplete = readFragment(coctx, buf, keyOnly, incomplete);
- if (keyOnly && key != null)
- return;
- }
- finally {
- pageMem.readUnlockPage0(pageAddr);
+ if (keyOnly && key != null)
+ return;
+ }
+ finally {
+ page.releaseRead();
+ }
}
-// try (Page page = page(pageId(nextLink), cctx)) {
-// }
}
while(nextLink != 0);
http://git-wip-us.apache.org/repos/asf/ignite/blob/173f3d6f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/DataStructure.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/DataStructure.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/DataStructure.java
index 1ca38da..f47a697 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/DataStructure.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/DataStructure.java
@@ -162,14 +162,6 @@ public abstract class DataStructure implements PageLockListener {
return PageHandler.readLock(page, this);
}
- protected final long readLock0(long pageId) {
- return pageMem.readLockPage0(0, pageId);
- }
-
- protected final void readUnlock0(long pageAddr) {
- pageMem.readUnlockPage0(pageAddr);
- }
-
/**
* @param page Page.
* @param buf Buffer.
http://git-wip-us.apache.org/repos/asf/ignite/blob/173f3d6f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
index 82d3ae6..7cf829e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
@@ -746,23 +746,15 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
firstPageId = getFirstPageId(meta, 0); // Level 0 is always at the bottom.
}
-// try (Page first = page(firstPageId)) {
-// long pageAddr = readLock(first); // We always merge pages backwards, the first page is never removed.
-//
-// try {
-// cursor.init(pageAddr, io(pageAddr), 0);
-// }
-// finally {
-// readUnlock(first, pageAddr);
-// }
-// }
- long pageAddr = readLock0(firstPageId); // We always merge pages backwards, the first page is never removed.
+ try (Page first = page(firstPageId)) {
+ long pageAddr = readLock(first); // We always merge pages backwards, the first page is never removed.
- try {
- cursor.init(pageAddr, io(pageAddr), 0);
- }
- finally {
- readUnlock0(pageAddr);
+ try {
+ cursor.init(pageAddr, io(pageAddr), 0);
+ }
+ finally {
+ readUnlock(first, pageAddr);
+ }
}
return cursor;
@@ -864,7 +856,7 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
*/
private Result findDown(final Get g, final long pageId, final long fwdId, final int lvl)
throws IgniteCheckedException {
- //Page page = page(pageId);
+ Page page = page(pageId);
try {
for (;;) {
@@ -872,7 +864,7 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
g.pageId = pageId;
g.fwdId = fwdId;
- Result res = readPage(pageMem, pageId, search, g, lvl, RETRY);
+ Result res = readPage(page, this, search, g, lvl, RETRY);
switch (res) {
case GO_DOWN:
@@ -906,8 +898,8 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
}
}
finally {
-// if (g.canRelease(page, lvl))
-// page.close();
+ if (g.canRelease(page, lvl))
+ page.close();
}
}
@@ -1029,26 +1021,28 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
* @throws IgniteCheckedException If failed.
*/
private L getGreatestRowInSubTree(long pageId) throws IgniteCheckedException {
- long pageAddr = readLock0(pageId); // No correctness guaranties.
+ try (Page page = page(pageId)) {
+ long pageAddr = readLock(page); // No correctness guaranties.
- try {
- BPlusIO<L> io = io(pageAddr);
+ try {
+ BPlusIO<L> io = io(pageAddr);
- int cnt = io.getCount(pageAddr);
+ int cnt = io.getCount(pageAddr);
- if (io.isLeaf()) {
- if (cnt <= 0) // This code is called only if the tree is not empty, so we can't see empty leaf.
- fail("Invalid leaf count: " + cnt + " " + U.hexLong(pageId));
+ if (io.isLeaf()) {
+ if (cnt <= 0) // This code is called only if the tree is not empty, so we can't see empty leaf.
+ fail("Invalid leaf count: " + cnt + " " + U.hexLong(pageId));
- return io.getLookupRow(this, pageAddr, cnt - 1);
- }
+ return io.getLookupRow(this, pageAddr, cnt - 1);
+ }
- long rightId = inner(io).getLeft(pageAddr, cnt);// The same as getRight(cnt - 1), but good for routing pages.
+ long rightId = inner(io).getLeft(pageAddr, cnt);// The same as getRight(cnt - 1), but good for routing pages.
- return getGreatestRowInSubTree(rightId);
- }
- finally {
- readUnlock0(pageAddr);
+ return getGreatestRowInSubTree(rightId);
+ }
+ finally {
+ readUnlock(page, pageAddr);
+ }
}
}
@@ -1391,7 +1385,7 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
r.fwdId = fwdId;
r.backId = backId;
- Result res = readPage(pageMem, pageId, search, r, lvl, RETRY);
+ Result res = readPage(page, this, search, r, lvl, RETRY);
switch (res) {
case GO_DOWN_X:
@@ -1790,12 +1784,10 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
* @return Operation result.
*/
private Result askNeighbor(long pageId, Get g, boolean back) throws IgniteCheckedException {
- return readPage(pageMem, pageId, askNeighbor, g,
- back ? TRUE.ordinal() : FALSE.ordinal(), RETRY);
-// try (Page page = page(pageId)) {
-// return readPage(page, this, askNeighbor, g,
-// back ? TRUE.ordinal() : FALSE.ordinal(), RETRY);
-// }
+ try (Page page = page(pageId)) {
+ return readPage(page, this, askNeighbor, g,
+ back ? TRUE.ordinal() : FALSE.ordinal(), RETRY);
+ }
}
/**
@@ -1818,7 +1810,7 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
p.pageId = pageId;
p.fwdId = fwdId;
- Result res = readPage(pageMem, pageId, search, p, lvl, RETRY);
+ Result res = readPage(page, this, search, p, lvl, RETRY);
switch (res) {
case GO_DOWN:
@@ -3679,22 +3671,24 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
return false; // Done.
}
- long pageAddr = readLock0(nextPageId); // Doing explicit null check.
+ try (Page next = page(nextPageId)) {
+ long pageAddr = readLock(next); // Doing explicit null check.
- // If concurrent merge occurred we have to reinitialize cursor from the last returned row.
- if (pageAddr == 0L)
- break;
+ // If concurrent merge occurred we have to reinitialize cursor from the last returned row.
+ if (pageAddr == 0L)
+ break;
- try {
- BPlusIO<L> io = io(pageAddr);
+ try {
+ BPlusIO<L> io = io(pageAddr);
- if (fillFromBuffer(pageAddr, io, 0, io.getCount(pageAddr)))
- return true;
+ if (fillFromBuffer(pageAddr, io, 0, io.getCount(pageAddr)))
+ return true;
- // Continue fetching forward.
- }
- finally {
- readUnlock0(pageAddr);
+ // Continue fetching forward.
+ }
+ finally {
+ readUnlock(next, pageAddr);
+ }
}
}
@@ -3730,7 +3724,7 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
@SuppressWarnings("unchecked")
@Override public final Result run(Page page, PageIO iox, long pageAddr, G g, int lvl)
throws IgniteCheckedException {
-// assert PageIO.getPageId(pageAddr) == page.id();
+ assert PageIO.getPageId(pageAddr) == page.id();
// If we've passed the check for correct page ID, we can safely cast.
BPlusIO<L> io = (BPlusIO<L>)iox;
http://git-wip-us.apache.org/repos/asf/ignite/blob/173f3d6f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java
index 8efe619..97b5a04 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java
@@ -96,29 +96,6 @@ public abstract class PageHandler<X, R> {
}
}
- public static <X, R> R readPage(
- PageMemory pageMem,
- long pageId,
- PageHandler<X, R> h,
- X arg,
- int intArg,
- R lockFailed
- ) throws IgniteCheckedException {
- long pageAddr = pageMem.readLockPage0(0, pageId);
-
- if (pageAddr == 0L)
- return lockFailed;
-
- try {
- PageIO io = PageIO.getPageIO(pageAddr);
-
- return h.run(null, io, pageAddr, arg, intArg);
- }
- finally {
- pageMem.readUnlockPage0(pageAddr);
- }
- }
-
/**
* @param pageMem Page memory.
* @param page Page.
[02/12] ignite git commit: GG-11794 WIP on command-line utility.
Posted by sb...@apache.org.
GG-11794 WIP on command-line utility.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/90f846af
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/90f846af
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/90f846af
Branch: refs/heads/ignite-gg-11810-1
Commit: 90f846af029bdc8d62b8a176ca9a144dee4c1cec
Parents: f96c590
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Thu Jan 12 18:35:04 2017 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Jan 12 18:35:04 2017 +0700
----------------------------------------------------------------------
.../main/resources/META-INF/classnames.properties | 2 --
.../main/resources/META-INF/classnames.properties | 16 +---------------
2 files changed, 1 insertion(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/90f846af/modules/core/src/main/resources/META-INF/classnames.properties
----------------------------------------------------------------------
diff --git a/modules/core/src/main/resources/META-INF/classnames.properties b/modules/core/src/main/resources/META-INF/classnames.properties
index 445f072..9060161 100644
--- a/modules/core/src/main/resources/META-INF/classnames.properties
+++ b/modules/core/src/main/resources/META-INF/classnames.properties
@@ -1846,7 +1846,6 @@ org.apache.ignite.internal.visor.util.VisorClusterGroupEmptyException
org.apache.ignite.internal.visor.util.VisorEventMapper
org.apache.ignite.internal.visor.util.VisorExceptionWrapper
org.apache.ignite.internal.visor.util.VisorTaskUtils$4
-org.apache.ignite.internal.visor.util.VisorTaskUtils$5
org.apache.ignite.internal.websession.WebSessionAttributeProcessor
org.apache.ignite.internal.websession.WebSessionEntity
org.apache.ignite.lang.IgniteBiClosure
@@ -1899,7 +1898,6 @@ org.apache.ignite.spi.checkpoint.sharedfs.SharedFsCheckpointData
org.apache.ignite.spi.collision.jobstealing.JobStealingRequest
org.apache.ignite.spi.collision.priorityqueue.PriorityQueueCollisionSpi$PriorityGridCollisionJobContextComparator
org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$1
-org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$10
org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$11
org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$12
org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$2$ConnectClosure
http://git-wip-us.apache.org/repos/asf/ignite/blob/90f846af/modules/hadoop/src/main/resources/META-INF/classnames.properties
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/resources/META-INF/classnames.properties b/modules/hadoop/src/main/resources/META-INF/classnames.properties
index 0ac17cf..051094d 100644
--- a/modules/hadoop/src/main/resources/META-INF/classnames.properties
+++ b/modules/hadoop/src/main/resources/META-INF/classnames.properties
@@ -26,20 +26,9 @@ org.apache.ignite.hadoop.util.KerberosUserNameMapper
org.apache.ignite.hadoop.util.KerberosUserNameMapper$State
org.apache.ignite.hadoop.util.UserNameMapper
org.apache.ignite.internal.processors.hadoop.HadoopAttributes
-org.apache.ignite.internal.processors.hadoop.HadoopDefaultJobInfo
org.apache.ignite.internal.processors.hadoop.HadoopExternalSplit
-org.apache.ignite.internal.processors.hadoop.HadoopFileBlock
-org.apache.ignite.internal.processors.hadoop.HadoopInputSplit
-org.apache.ignite.internal.processors.hadoop.HadoopJobId
-org.apache.ignite.internal.processors.hadoop.HadoopJobInfo
-org.apache.ignite.internal.processors.hadoop.HadoopJobPhase
-org.apache.ignite.internal.processors.hadoop.HadoopJobProperty
-org.apache.ignite.internal.processors.hadoop.HadoopJobStatus
-org.apache.ignite.internal.processors.hadoop.HadoopMapReducePlan
org.apache.ignite.internal.processors.hadoop.HadoopSplitWrapper
org.apache.ignite.internal.processors.hadoop.HadoopTaskCancelledException
-org.apache.ignite.internal.processors.hadoop.HadoopTaskInfo
-org.apache.ignite.internal.processors.hadoop.HadoopTaskType
org.apache.ignite.internal.processors.hadoop.counter.HadoopCounterAdapter
org.apache.ignite.internal.processors.hadoop.counter.HadoopCountersImpl
org.apache.ignite.internal.processors.hadoop.counter.HadoopCountersImpl$CounterKey
@@ -73,7 +62,6 @@ org.apache.ignite.internal.processors.hadoop.jobtracker.HadoopJobTracker$RemoveM
org.apache.ignite.internal.processors.hadoop.jobtracker.HadoopJobTracker$RemoveReducerProcessor
org.apache.ignite.internal.processors.hadoop.jobtracker.HadoopJobTracker$StackedProcessor
org.apache.ignite.internal.processors.hadoop.jobtracker.HadoopJobTracker$UpdatePhaseProcessor
-org.apache.ignite.internal.processors.hadoop.message.HadoopMessage
org.apache.ignite.internal.processors.hadoop.planner.HadoopDefaultMapReducePlan
org.apache.ignite.internal.processors.hadoop.proto.HadoopProtocolJobCountersTask
org.apache.ignite.internal.processors.hadoop.proto.HadoopProtocolJobStatusTask
@@ -84,11 +72,9 @@ org.apache.ignite.internal.processors.hadoop.proto.HadoopProtocolSubmitJobTask
org.apache.ignite.internal.processors.hadoop.proto.HadoopProtocolTaskAdapter
org.apache.ignite.internal.processors.hadoop.proto.HadoopProtocolTaskAdapter$Job
org.apache.ignite.internal.processors.hadoop.proto.HadoopProtocolTaskArguments
-org.apache.ignite.internal.processors.hadoop.shuffle.HadoopShuffle$1
org.apache.ignite.internal.processors.hadoop.shuffle.HadoopShuffle$2
-org.apache.ignite.internal.processors.hadoop.shuffle.HadoopShuffleAck
+org.apache.ignite.internal.processors.hadoop.shuffle.HadoopShuffle$3
org.apache.ignite.internal.processors.hadoop.shuffle.HadoopShuffleJob$4
-org.apache.ignite.internal.processors.hadoop.shuffle.HadoopShuffleMessage
org.apache.ignite.internal.processors.hadoop.shuffle.collections.HadoopConcurrentHashMultimap$State
org.apache.ignite.internal.processors.hadoop.taskexecutor.HadoopTaskState
org.apache.ignite.internal.processors.hadoop.taskexecutor.HadoopTaskStatus
[06/12] ignite git commit: Merge remote-tracking branch
'remotes/community/ignite-gg-8.0.2.ea2' into ignite-gg-11810
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/community/ignite-gg-8.0.2.ea2' into ignite-gg-11810
# Conflicts:
# modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e81cfdbe
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e81cfdbe
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e81cfdbe
Branch: refs/heads/ignite-gg-11810-1
Commit: e81cfdbefd89502ac239fcccb8bd0a8037e52290
Parents: fc9c488 e1b84b4
Author: sboikov <sb...@gridgain.com>
Authored: Mon Jan 16 11:43:17 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Jan 16 11:43:17 2017 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheAdapter.java | 2 +-
.../processors/cache/GridCacheMapEntry.java | 3 +--
.../main/resources/META-INF/classnames.properties | 2 --
.../internal/ClusterNodeMetricsSelfTest.java | 2 ++
.../GridDeploymentMessageCountSelfTest.java | 3 +++
.../processors/cache/ClusterStateAbstractTest.java | 3 ++-
.../IgniteCacheExpiryPolicyAbstractTest.java | 6 ++----
.../testsuites/IgniteComputeGridTestSuite.java | 1 -
.../main/resources/META-INF/classnames.properties | 16 +---------------
.../processors/query/h2/database/H2TreeIndex.java | 2 +-
.../query/IgniteSqlSplitterSelfTest.java | 2 +-
.../testsuites/IgniteDistributedJoinTestSuite.java | 17 +++++++++++++++++
12 files changed, 31 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e81cfdbe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e81cfdbe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e81cfdbe/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e81cfdbe/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteDistributedJoinTestSuite.java
----------------------------------------------------------------------
[04/12] ignite git commit: ignite-gg-8.0.2.ea2 fix test,
add licenses header, mute metrics test
Posted by sb...@apache.org.
ignite-gg-8.0.2.ea2 fix test, add licenses header, mute metrics test
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2254d372
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2254d372
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2254d372
Branch: refs/heads/ignite-gg-11810-1
Commit: 2254d37232ea994ff9dd63917cbd9c8c599bbb12
Parents: 00e88cc
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Fri Jan 13 15:40:26 2017 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Fri Jan 13 15:40:26 2017 +0300
----------------------------------------------------------------------
.../internal/ClusterNodeMetricsSelfTest.java | 2 ++
.../testsuites/IgniteComputeGridTestSuite.java | 1 -
.../query/IgniteSqlSplitterSelfTest.java | 2 +-
.../testsuites/IgniteDistributedJoinTestSuite.java | 17 +++++++++++++++++
4 files changed, 20 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/2254d372/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
index 77359ab..97d17e2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java
@@ -116,6 +116,8 @@ public class ClusterNodeMetricsSelfTest extends GridCommonAbstractTest {
* @throws Exception If failed.
*/
public void testAllocatedMemory() throws Exception {
+ fail("https://issues.apache.org/jira/browse/IGNITE-4536");
+
Ignite ignite = grid();
final IgniteCache onHeapCache = ignite.getOrCreateCache(ON_HEAP_TIERED_NAME);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2254d372/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteComputeGridTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteComputeGridTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteComputeGridTestSuite.java
index 8a501fd..c6b7a15 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteComputeGridTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteComputeGridTestSuite.java
@@ -133,7 +133,6 @@ public class IgniteComputeGridTestSuite {
suite.addTestSuite(GridMultipleJobsSelfTest.class);
suite.addTestSuite(GridCheckpointManagerSelfTest.class);
suite.addTestSuite(GridCheckpointTaskSelfTest.class);
- suite.addTestSuite(ClusterNodeMetricsSelfTest.class);
suite.addTestSuite(GridTaskNameAnnotationSelfTest.class);
suite.addTestSuite(GridJobCheckpointCleanupSelfTest.class);
suite.addTestSuite(GridEventStorageSelfTest.class);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2254d372/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
index 8140a1d..75bbe00 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
@@ -974,7 +974,7 @@ public class IgniteSqlSplitterSelfTest extends GridCommonAbstractTest {
c1.put(key++, p);
}
- String select = "select count(*) from Organization o, \"pers\".Person2 p where p.orgId = o._key";
+ String select = "select count(*) from \"org\".Organization o, \"pers\".Person2 p where p.orgId = o._key";
String plan = (String)c2.query(new SqlFieldsQuery("explain " + select)
.setDistributedJoins(true).setEnforceJoinOrder(enforceJoinOrder).setPageSize(pageSize))
http://git-wip-us.apache.org/repos/asf/ignite/blob/2254d372/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteDistributedJoinTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteDistributedJoinTestSuite.java b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteDistributedJoinTestSuite.java
index dca640f..5371856 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteDistributedJoinTestSuite.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteDistributedJoinTestSuite.java
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package org.apache.ignite.testsuites;
import junit.framework.TestSuite;
[07/12] ignite git commit: gg-11810
Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIOTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIOTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIOTest.java
index ac05727..e2767bb 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIOTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIOTest.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.processors.cache.database.tree.io;
import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
import java.util.HashMap;
import java.util.Map;
import java.util.NavigableSet;
@@ -26,9 +27,6 @@ import java.util.TreeSet;
import java.util.concurrent.ThreadLocalRandom;
import junit.framework.TestCase;
import org.apache.ignite.internal.util.GridUnsafe;
-import sun.misc.JavaNioAccess;
-import sun.misc.SharedSecrets;
-import sun.nio.ch.DirectBuffer;
/**
*
@@ -40,26 +38,13 @@ public class TrackingPageIOTest extends TestCase {
/** */
private final TrackingPageIO io = TrackingPageIO.VERSIONS.latest();
- /** */
- private long buf;
-
- @Override protected void setUp() throws Exception {
- super.setUp();
-
- buf = GridUnsafe.allocateMemory(PAGE_SIZE);
- }
-
- @Override protected void tearDown() throws Exception {
- if (buf != 0L)
- GridUnsafe.freeMemory(buf);
-
- super.tearDown();
- }
-
/**
*
*/
public void testBasics() {
+ ByteBuffer buf = ByteBuffer.allocateDirect(PAGE_SIZE);
+ buf.order(ByteOrder.nativeOrder());
+
io.markChanged(buf, 2, 0, -1, PAGE_SIZE);
assertTrue(io.wasChanged(buf, 2, 0, -1, PAGE_SIZE));
@@ -69,18 +54,13 @@ public class TrackingPageIOTest extends TestCase {
assertFalse(io.wasChanged(buf, 2, 1, 0, PAGE_SIZE));
}
- private long allocate() {
- return GridUnsafe.allocateMemory(PAGE_SIZE);
- }
-
- private void free(long addr) {
- GridUnsafe.freeMemory(addr);
- }
-
/**
*
*/
public void testMarkingRandomly() {
+ ByteBuffer buf = ByteBuffer.allocateDirect(PAGE_SIZE);
+ buf.order(ByteOrder.nativeOrder());
+
int cntOfPageToTrack = io.countOfPageToTrack(PAGE_SIZE);
for (int i = 0; i < 1001; i++)
@@ -91,6 +71,9 @@ public class TrackingPageIOTest extends TestCase {
*
*/
public void testZeroingRandomly() {
+ ByteBuffer buf = ByteBuffer.allocateDirect(PAGE_SIZE);
+ buf.order(ByteOrder.nativeOrder());
+
for (int i = 0; i < 1001; i++)
checkMarkingRandomly(buf, i, true);
}
@@ -99,7 +82,7 @@ public class TrackingPageIOTest extends TestCase {
* @param buf Buffer.
* @param backupId Backup id.
*/
- private void checkMarkingRandomly(long buf, int backupId, boolean testZeroing) {
+ private void checkMarkingRandomly(ByteBuffer buf, int backupId, boolean testZeroing) {
ThreadLocalRandom rand = ThreadLocalRandom.current();
int track = io.countOfPageToTrack(PAGE_SIZE);
@@ -110,7 +93,7 @@ public class TrackingPageIOTest extends TestCase {
assert basePageId >= 0;
- PageIO.setPageId(buf, basePageId);
+ PageIO.setPageId(GridUnsafe.bufferAddress(buf), basePageId);
Map<Long, Boolean> map = new HashMap<>();
@@ -145,7 +128,13 @@ public class TrackingPageIOTest extends TestCase {
}
}
+ /**
+ * @throws Exception If failed.
+ */
public void testFindNextChangedPage() throws Exception {
+ ByteBuffer buf = ByteBuffer.allocateDirect(PAGE_SIZE);
+ buf.order(ByteOrder.nativeOrder());
+
for (int i = 0; i < 101; i++)
checkFindingRandomly(buf, i);
}
@@ -154,7 +143,7 @@ public class TrackingPageIOTest extends TestCase {
* @param buf Buffer.
* @param backupId Backup id.
*/
- private void checkFindingRandomly(long buf, int backupId) {
+ private void checkFindingRandomly(ByteBuffer buf, int backupId) {
ThreadLocalRandom rand = ThreadLocalRandom.current();
int track = io.countOfPageToTrack(PAGE_SIZE);
@@ -165,7 +154,7 @@ public class TrackingPageIOTest extends TestCase {
assert basePageId >= 0;
- PageIO.setPageId(buf, basePageId);
+ PageIO.setPageId(GridUnsafe.bufferAddress(buf), basePageId);
try {
TreeSet<Long> setIdx = new TreeSet<>();
@@ -195,7 +184,13 @@ public class TrackingPageIOTest extends TestCase {
}
}
+ /**
+ *
+ */
public void testMerging() {
+ ByteBuffer buf = ByteBuffer.allocateDirect(PAGE_SIZE);
+ buf.order(ByteOrder.nativeOrder());
+
ThreadLocalRandom rand = ThreadLocalRandom.current();
int track = io.countOfPageToTrack(PAGE_SIZE);
@@ -204,7 +199,7 @@ public class TrackingPageIOTest extends TestCase {
assert basePageId >= 0;
- PageIO.setPageId(buf, basePageId);
+ PageIO.setPageId(GridUnsafe.bufferAddress(buf), basePageId);
TreeSet<Long> setIdx = new TreeSet<>();
@@ -228,7 +223,13 @@ public class TrackingPageIOTest extends TestCase {
assertFalse(io.wasChanged(buf, i, 5, 4, PAGE_SIZE));
}
+ /**
+ *
+ */
public void testMerging_MarksShouldBeDropForSuccessfulBackup() {
+ ByteBuffer buf = ByteBuffer.allocateDirect(PAGE_SIZE);
+ buf.order(ByteOrder.nativeOrder());
+
ThreadLocalRandom rand = ThreadLocalRandom.current();
int track = io.countOfPageToTrack(PAGE_SIZE);
@@ -237,7 +238,7 @@ public class TrackingPageIOTest extends TestCase {
assert basePageId >= 0;
- PageIO.setPageId(buf, basePageId);
+ PageIO.setPageId(GridUnsafe.bufferAddress(buf), basePageId);
TreeSet<Long> setIdx = new TreeSet<>();
@@ -260,7 +261,7 @@ public class TrackingPageIOTest extends TestCase {
}
private void generateMarking(
- long buf,
+ ByteBuffer buf,
int track,
long basePageId,
long maxPageId,
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/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 b683fd5..928c86d 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
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.processors.database;
+import java.nio.ByteBuffer;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
@@ -1415,6 +1416,11 @@ public class BPlusTreeSelfTest extends GridCommonAbstractTest {
}
/** {@inheritDoc} */
+ @Override public void storeByOffset(ByteBuffer buf, int off, Long row) throws IgniteCheckedException {
+ throw new UnsupportedOperationException();
+ }
+
+ /** {@inheritDoc} */
@Override public void storeByOffset(long pageAddr, int off, Long row) {
checkNotRemoved(row);
@@ -1474,6 +1480,11 @@ public class BPlusTreeSelfTest extends GridCommonAbstractTest {
}
/** {@inheritDoc} */
+ @Override public void storeByOffset(ByteBuffer buf, int off, Long row) throws IgniteCheckedException {
+ throw new UnsupportedOperationException();
+ }
+
+ /** {@inheritDoc} */
@Override public void storeByOffset(long pageAddr, int off, Long row) {
PageUtils.putLong(pageAddr, off, row);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/io/H2InnerIO.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/io/H2InnerIO.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/io/H2InnerIO.java
index 8252a69..f697121 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/io/H2InnerIO.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/io/H2InnerIO.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.processors.query.h2.database.io;
+import java.nio.ByteBuffer;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.pagemem.PageUtils;
import org.apache.ignite.internal.processors.cache.database.tree.BPlusTree;
@@ -44,6 +45,15 @@ public class H2InnerIO extends BPlusInnerIO<SearchRow> implements H2RowLinkIO {
}
/** {@inheritDoc} */
+ @Override public void storeByOffset(ByteBuffer buf, int off, SearchRow row) {
+ GridH2Row row0 = (GridH2Row)row;
+
+ assert row0.link != 0;
+
+ buf.putLong(off, row0.link);
+ }
+
+ /** {@inheritDoc} */
@Override public void storeByOffset(long pageAddr, int off, SearchRow row) {
GridH2Row row0 = (GridH2Row)row;
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa28a2e5/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/io/H2LeafIO.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/io/H2LeafIO.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/io/H2LeafIO.java
index a24eb99..26cbdc5 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/io/H2LeafIO.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/io/H2LeafIO.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.processors.query.h2.database.io;
+import java.nio.ByteBuffer;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.pagemem.PageUtils;
import org.apache.ignite.internal.processors.cache.database.tree.BPlusTree;
@@ -44,6 +45,15 @@ public class H2LeafIO extends BPlusLeafIO<SearchRow> implements H2RowLinkIO {
}
/** {@inheritDoc} */
+ @Override public void storeByOffset(ByteBuffer buf, int off, SearchRow row) {
+ GridH2Row row0 = (GridH2Row)row;
+
+ assert row0.link != 0;
+
+ buf.putLong(off, row0.link);
+ }
+
+ /** {@inheritDoc} */
@Override public void storeByOffset(long pageAddr, int off, SearchRow row) {
GridH2Row row0 = (GridH2Row)row;