ignite-db - free

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

Branch: refs/heads/ignite-db-x-10884
Commit: 956f083d303d907c46320e43d8a96660bd6e352a
Parents: 8bb76a8
Author: S.Vladykin <[email protected]>
Authored: Wed Apr 27 06:53:37 2016 +0300
Committer: S.Vladykin <[email protected]>
Committed: Wed Apr 27 06:53:37 2016 +0300

----------------------------------------------------------------------
 .../processors/cache/database/MetadataStorage.java |  2 +-
 .../processors/cache/database/RowStore.java        |  1 +
 .../cache/database/freelist/FreeList.java          |  2 ++
 .../database/IgniteCacheH2DatabaseManager.java     | 17 +++++++++++------
 .../processors/query/h2/IgniteH2Indexing.java      | 10 ++++++++--
 5 files changed, 23 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/956f083d/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 bea27a4..169c97c 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
@@ -160,7 +160,7 @@ public class MetadataStorage implements MetaStore {
             try {
                 long nextPageId = writeBuf.getLong();
 
-                assert nextPageId == 0;
+                assert nextPageId == 0: nextPageId;
 
                 // Position buffer to the last record.
                 writeBuf.position(state.position);

http://git-wip-us.apache.org/repos/asf/ignite/blob/956f083d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/RowStore.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/RowStore.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/RowStore.java
index fdfadd6..a66e9dd 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/RowStore.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/RowStore.java
@@ -95,6 +95,7 @@ public class RowStore<T extends CacheDataRow> {
      */
     public RowStore(GridCacheContext<?,?> cctx, FreeList freeList) {
         assert cctx != null;
+        assert freeList != null;
 
         this.cctx = cctx;
         this.freeList = freeList;

http://git-wip-us.apache.org/repos/asf/ignite/blob/956f083d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeList.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeList.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeList.java
index 30ed519..721f0c0 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeList.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeList.java
@@ -61,6 +61,8 @@ public class FreeList {
 
             assert idx >= 0;
 
+            row.link(PageIdUtils.linkFromDwordOffset(page.id(), idx));
+
             int freeSpace = io.getFreeSpace(buf);
 
             // Put our free item.

http://git-wip-us.apache.org/repos/asf/ignite/blob/956f083d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheH2DatabaseManager.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheH2DatabaseManager.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheH2DatabaseManager.java
index aa94bfb..5debe92 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheH2DatabaseManager.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheH2DatabaseManager.java
@@ -76,11 +76,6 @@ public class IgniteCacheH2DatabaseManager extends 
GridCacheManagerAdapter implem
             if (primaryIdx != null)
                 throw new IgniteCheckedException("Primary index already exists 
for cache " +
                     "(make sure only one key-value type pair is stored in the 
cache): " + cctx.name());
-
-            int cpus = Runtime.getRuntime().availableProcessors();
-
-            reuseList = new ReuseList(cctx.cacheId(), dbMgr.pageMemory(), cpus 
* 2, dbMgr.meta());
-            freeList = new FreeList(cctx, reuseList);
         }
 
         Index idx = new H2TreeIndex(
@@ -106,7 +101,17 @@ public class IgniteCacheH2DatabaseManager extends 
GridCacheManagerAdapter implem
      * @param tbl Table.
      * @return New row store for the given table.
      */
-    public H2RowStore createRowStore(GridH2Table tbl) {
+    public H2RowStore createRowStore(GridH2Table tbl) throws 
IgniteCheckedException {
+        assert reuseList == null;
+        assert freeList == null;
+
+        int cpus = Runtime.getRuntime().availableProcessors();
+
+        IgniteCacheDatabaseSharedManager dbMgr = cctx.shared().database();
+
+        reuseList = new ReuseList(cctx.cacheId(), dbMgr.pageMemory(), cpus * 
2, dbMgr.meta());
+        freeList = new FreeList(cctx, reuseList);
+
         return new H2RowStore(tbl.rowDescriptor(), cctx, freeList);
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/956f083d/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 7d226ea..d48931d 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
@@ -1983,8 +1983,14 @@ public class IgniteH2Indexing implements 
GridQueryIndexing {
 
             IgniteCacheH2DatabaseManager dbMgr = databaseManager(cacheId);
 
-            if (dbMgr != null)
-                return dbMgr.createRowStore(tbl);
+            if (dbMgr != null) {
+                try {
+                    return dbMgr.createRowStore(tbl);
+                }
+                catch (IgniteCheckedException e) {
+                    throw new IgniteException(e);
+                }
+            }
 
             return null;
         }

Reply via email to