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; }
