Repository: ignite
Updated Branches:
  refs/heads/ignite-db-x-10884 fc7e0630b -> aea1c1728


Merge remote-tracking branch 'remotes/community/ignite-db-x' into 
ignite-db-x-10884

Conflicts:
        
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageIO.java
        
modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheH2DatabaseManager.java
        
modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
        
modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbSingleNodePutGetSelfTest.java


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/aea1c172
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/aea1c172
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/aea1c172

Branch: refs/heads/ignite-db-x-10884
Commit: aea1c17282dc21421aba82b3858fbc6f67cc4cbe
Parents: fc7e063
Author: sboikov <[email protected]>
Authored: Thu Apr 28 11:55:51 2016 +0300
Committer: sboikov <[email protected]>
Committed: Thu Apr 28 11:55:51 2016 +0300

----------------------------------------------------------------------
 .../cache/IgniteCacheOffheapManager.java        | 41 ++++++++++++++++----
 .../cache/database/tree/io/BPlusInnerIO.java    |  8 ++--
 .../processors/query/h2/IgniteH2Indexing.java   |  3 +-
 .../IgniteDbSingleNodePutGetSelfTest.java       |  3 --
 4 files changed, 39 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/aea1c172/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManager.java
index 04736cd..32dfe5f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManager.java
@@ -41,6 +41,7 @@ import 
org.apache.ignite.internal.processors.cache.database.tree.io.BPlusLeafIO;
 import org.apache.ignite.internal.processors.cache.database.tree.io.DataPageIO;
 import org.apache.ignite.internal.processors.cache.database.tree.io.IOVersions;
 import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
+import 
org.apache.ignite.internal.processors.cache.database.tree.reuse.ReuseList;
 import 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtInvalidPartitionException;
 import org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
@@ -72,6 +73,12 @@ public class IgniteCacheOffheapManager extends 
GridCacheManagerAdapter {
     /** */
     private final boolean indexingEnabled;
 
+    /** */
+    private FreeList freeList;
+
+    /** */
+    private ReuseList reuseList;
+
     /**
      * @param indexingEnabled {@code True} if indexing is enabled for cache.
      */
@@ -82,19 +89,31 @@ public class IgniteCacheOffheapManager extends 
GridCacheManagerAdapter {
     /**
      * {@inheritDoc}
      */
-    @Override
-    protected void start0() throws IgniteCheckedException {
+    @Override protected void start0() throws IgniteCheckedException {
         super.start0();
 
         IgniteCacheDatabaseSharedManager dbMgr = cctx.shared().database();
 
         IgniteBiTuple<FullPageId, Boolean> page = 
dbMgr.meta().getOrAllocateForIndex(cctx.cacheId(), cctx.namexx());
 
-        rowStore = new CacheDataRowStore(cctx, null);
+        int cpus = Runtime.getRuntime().availableProcessors();
+
+        reuseList = new ReuseList(cctx.cacheId(), dbMgr.pageMemory(), cpus * 
2, dbMgr.meta());
+        freeList = new FreeList(cctx, reuseList);
+
+        rowStore = new CacheDataRowStore(cctx, freeList);
 
         dataTree = new CacheDataTree(rowStore, cctx, dbMgr.pageMemory(), 
page.get1(), page.get2());
     }
 
+    public ReuseList reuseList() {
+        return reuseList;
+    }
+
+    public FreeList freeList() {
+        return freeList;
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -173,8 +192,7 @@ public class IgniteCacheOffheapManager extends 
GridCacheManagerAdapter {
      * @return Value tuple, if available.
      * @throws IgniteCheckedException If failed.
      */
-    @Nullable
-    public IgniteBiTuple<CacheObject, GridCacheVersion> read(KeyCacheObject 
key, int part)
+    @Nullable public IgniteBiTuple<CacheObject, GridCacheVersion> 
read(KeyCacheObject key, int part)
         throws IgniteCheckedException {
         if (indexingEnabled)
             return cctx.queries().read(key, part);
@@ -184,8 +202,7 @@ public class IgniteCacheOffheapManager extends 
GridCacheManagerAdapter {
         return dataRow != null ? F.t(dataRow.val, dataRow.ver) : null;
     }
 
-    @Nullable
-    CacheObject readValue(KeyCacheObject key, int part) throws 
IgniteCheckedException {
+    @Nullable CacheObject readValue(KeyCacheObject key, int part) throws 
IgniteCheckedException {
         IgniteBiTuple<CacheObject, GridCacheVersion> t = read(key, part);
 
         return t != null ? t.get1() : null;
@@ -567,7 +584,9 @@ public class IgniteCacheOffheapManager extends 
GridCacheManagerAdapter {
             PageMemory pageMem,
             FullPageId metaPageId,
             boolean initNew) throws IgniteCheckedException {
-            super(cctx.cacheId(), pageMem, metaPageId);
+            super(cctx.cacheId(), pageMem, metaPageId, null);
+
+            assert rowStore != null;
 
             this.rowStore = rowStore;
             this.cctx = cctx;
@@ -831,6 +850,12 @@ public class IgniteCacheOffheapManager extends 
GridCacheManagerAdapter {
         }
 
         /** {@inheritDoc} */
+        @Override public void store(ByteBuffer dst, int dstIdx, 
BPlusIO<KeySearchRow> srcIo, ByteBuffer src, int srcIdx)
+            throws IgniteCheckedException {
+            setLink(dst, dstIdx, getLink(src, srcIdx));
+        }
+
+        /** {@inheritDoc} */
         @Override public KeySearchRow getLookupRow(BPlusTree<KeySearchRow,?> 
tree, ByteBuffer buf, int idx)
             throws IgniteCheckedException {
             long link = getLink(buf, idx);

http://git-wip-us.apache.org/repos/asf/ignite/blob/aea1c172/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusInnerIO.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusInnerIO.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusInnerIO.java
index 60c8f58..c3e5470 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusInnerIO.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusInnerIO.java
@@ -25,13 +25,13 @@ import org.apache.ignite.IgniteCheckedException;
  */
 public abstract class BPlusInnerIO<L> extends BPlusIO<L> {
     /** */
-    private static final int SHIFT_LEFT = ITEMS_OFF;
+    protected static final int SHIFT_LEFT = ITEMS_OFF;
 
     /** */
-    private static final int SHIFT_LINK = SHIFT_LEFT + 8;
+    protected static final int SHIFT_LINK = SHIFT_LEFT + 8;
 
     /** */
-    private final int SHIFT_RIGHT = SHIFT_LINK + itemSize;
+    protected final int SHIFT_RIGHT = SHIFT_LINK + itemSize;
 
     /**
      * @param type Page type.
@@ -121,7 +121,7 @@ public abstract class BPlusInnerIO<L> extends BPlusIO<L> {
      * @param shift It can be either link itself or left or right page ID.
      * @return Offset from byte buffer begin in bytes.
      */
-    private int offset(int idx, int shift) {
+    protected final int offset(int idx, int shift) {
         return shift + (8 + itemSize) * idx;
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/aea1c172/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index a35c7d9..659c387 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@ -2057,7 +2057,7 @@ public class IgniteH2Indexing implements 
GridQueryIndexing {
             GridCacheContext cctx = 
ctx.cache().context().cacheContext(cacheId);
 
             if (cctx.affinityNode() && cctx.offheapIndex())
-                return new H2RowStore(tbl.rowDescriptor(), cctx, null);
+                return new H2RowStore(tbl.rowDescriptor(), cctx, 
cctx.offheap().freeList());
 
             return null;
         }
@@ -2190,6 +2190,7 @@ public class IgniteH2Indexing implements 
GridQueryIndexing {
             H2TreeIndex idx = new H2TreeIndex(
                 cctx,
                 dbMgr.pageMemory(),
+                cctx.offheap().reuseList(),
                 page.get1(),
                 page.get2(),
                 keyCol,

http://git-wip-us.apache.org/repos/asf/ignite/blob/aea1c172/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbSingleNodePutGetSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbSingleNodePutGetSelfTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbSingleNodePutGetSelfTest.java
index c50d012..052830f 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbSingleNodePutGetSelfTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbSingleNodePutGetSelfTest.java
@@ -59,9 +59,6 @@ public class IgniteDbSingleNodePutGetSelfTest extends 
GridCommonAbstractTest {
 
         dbCfg.setConcurrencyLevel(Runtime.getRuntime().availableProcessors() * 
4);
 
-        // TODO GG-10884 increased to avoid errors on metadata cache update.
-        dbCfg.setPageSize(1024);
-
         dbCfg.setPageCacheSize(100 * 1024 * 1024);
 
         cfg.setDatabaseConfiguration(dbCfg);

Reply via email to