Merge inline indexes
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/56fadcd2 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/56fadcd2 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/56fadcd2 Branch: refs/heads/ignite-gg-8.0.3.ea6-clients-test Commit: 56fadcd27fe321b79417a917404cf744e1549a10 Parents: 63e6a21 8f836cb Author: Alexey Goncharuk <[email protected]> Authored: Thu Feb 16 14:55:27 2017 +0300 Committer: Alexey Goncharuk <[email protected]> Committed: Thu Feb 16 14:55:27 2017 +0300 ---------------------------------------------------------------------- .../benchmarks/jmh/tree/BPlusTreeBenchmark.java | 13 +- .../apache/ignite/IgniteSystemProperties.java | 7 + .../org/apache/ignite/cache/QueryIndex.java | 21 ++ .../configuration/CacheConfiguration.java | 35 ++- .../apache/ignite/internal/IgniteKernal.java | 9 +- .../apache/ignite/internal/pagemem/Page.java | 2 +- .../ignite/internal/pagemem/PageIdUtils.java | 2 +- .../ignite/internal/pagemem/PageMemory.java | 9 +- .../pagemem/impl/PageMemoryNoStoreImpl.java | 28 +- .../internal/pagemem/wal/record/WALRecord.java | 5 +- .../pagemem/wal/record/delta/InsertRecord.java | 25 +- .../delta/MetaPageInitRootInlineRecord.java | 62 ++++ .../record/delta/MetaPageInitRootRecord.java | 3 +- .../wal/record/delta/NewRootInitRecord.java | 26 +- .../pagemem/wal/record/delta/ReplaceRecord.java | 23 +- .../cache/IgniteCacheOffheapManagerImpl.java | 54 +--- .../IgniteCacheDatabaseSharedManager.java | 9 + .../cache/database/MetadataStorage.java | 57 +--- .../cache/database/freelist/FreeList.java | 6 + .../cache/database/freelist/FreeListImpl.java | 289 +++++++++++-------- .../cache/database/freelist/PagesList.java | 267 +++++++++++------ .../cache/database/tree/BPlusTree.java | 197 ++++++++++--- .../cache/database/tree/io/BPlusIO.java | 34 +-- .../cache/database/tree/io/BPlusInnerIO.java | 44 +-- .../cache/database/tree/io/BPlusLeafIO.java | 9 +- .../cache/database/tree/io/BPlusMetaIO.java | 45 ++- .../cache/database/tree/io/DataPageIO.java | 48 ++- .../cache/database/tree/io/DataPagePayload.java | 2 +- .../cache/database/tree/io/PageIO.java | 60 ++++ .../dht/GridDhtPartitionTopologyImpl.java | 2 +- .../cluster/IgniteChangeGlobalStateSupport.java | 2 + .../query/GridQueryIndexDescriptor.java | 7 + .../processors/query/GridQueryProcessor.java | 39 ++- .../apache/ignite/internal/util/GridUnsafe.java | 45 ++- .../GridCacheRebalancingSyncSelfTest.java | 12 +- .../processors/database/BPlusTreeSelfTest.java | 13 +- .../odbc/OdbcProcessorValidationSelfTest.java | 4 +- .../unsafe/GridUnsafeMemorySelfTest.java | 35 +++ .../junits/common/GridCommonAbstractTest.java | 59 ++-- .../ignite/testsuites/IgniteCacheTestSuite.java | 10 - .../testsuites/IgniteCacheTestSuite5.java | 19 +- .../processors/query/h2/IgniteH2Indexing.java | 19 +- .../processors/query/h2/database/H2Tree.java | 57 +++- .../query/h2/database/H2TreeIndex.java | 236 ++++++++++++++- .../query/h2/database/InlineIndexHelper.java | 279 ++++++++++++++++++ .../query/h2/database/io/H2ExtrasInnerIO.java | 135 +++++++++ .../query/h2/database/io/H2ExtrasLeafIO.java | 132 +++++++++ .../query/h2/database/io/H2InnerIO.java | 10 - .../query/h2/database/io/H2LeafIO.java | 10 - .../processors/query/h2/opt/GridH2Row.java | 2 +- .../processors/query/h2/opt/GridH2Table.java | 3 +- .../h2/GridIndexingSpiAbstractSelfTest.java | 5 + .../query/h2/database/H2TreeIndexTest.java | 59 ++++ .../h2/database/InlineIndexHelperTest.java | 46 +++ 54 files changed, 2063 insertions(+), 568 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/56fadcd2/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/56fadcd2/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/56fadcd2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java index 43ba08a,5df99b6..05eaf0a --- 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 @@@ -785,38 -776,31 +787,38 @@@ public class IgniteCacheOffheapManagerI IgniteInClosure2X<GridCacheEntryEx, GridCacheVersion> c, int amount ) throws IgniteCheckedException { - if (pendingEntries != null) { + if (hasPendingEntries && pendingEntries != null) { - GridCacheVersion obsoleteVer = null; + cctx.shared().database().checkpointReadLock(); - long now = U.currentTimeMillis(); + try { + GridCacheVersion obsoleteVer = null; - GridCursor<PendingRow> cur = pendingEntries.find(START_PENDING_ROW, new PendingRow(now, 0)); + long now = U.currentTimeMillis(); - int cleared = 0; + GridCursor<PendingRow> cur = pendingEntries.find(START_PENDING_ROW, new PendingRow(now, 0)); - while (cur.next()) { - PendingRow row = cur.get(); + int cleared = 0; - if (amount != -1 && cleared > amount) - return true; + while (cur.next()) { + PendingRow row = cur.get(); - assert row.key != null && row.link != 0 && row.expireTime != 0 : row; + if (amount != -1 && cleared > amount) + return true; - if (pendingEntries.remove(row) != null) { - if (obsoleteVer == null) - obsoleteVer = cctx.versions().next(); + assert row.key != null && row.link != 0 && row.expireTime != 0 : row; - c.apply(cctx.cache().entryEx(row.key), obsoleteVer); - } + if (pendingEntries.remove(row) != null) { + if (obsoleteVer == null) + obsoleteVer = cctx.versions().next(); - cleared++; + c.apply(cctx.cache().entryEx(row.key), obsoleteVer); + } + + cleared++; + } + } + finally { + cctx.shared().database().checkpointReadUnlock(); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/56fadcd2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/56fadcd2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/56fadcd2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/56fadcd2/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/56fadcd2/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/56fadcd2/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java ----------------------------------------------------------------------
