Repository: ignite Updated Branches: refs/heads/ignite-5075-pds [created] 7ae45b4b6
IGNITE-GG-12163 IgniteComponentType mechanism employed to instantiate PDS managers Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8004287c Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8004287c Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8004287c Branch: refs/heads/ignite-5075-pds Commit: 8004287cfef875089a926a5422ebe09e4dc0ad7b Parents: a14a594 Author: Sergey Chugunov <[email protected]> Authored: Wed May 10 17:40:24 2017 +0300 Committer: Sergey Chugunov <[email protected]> Committed: Wed May 10 17:40:24 2017 +0300 ---------------------------------------------------------------------- .../ignite/internal/IgniteComponentType.java | 17 +++++++++++++- .../processors/cache/GridCacheProcessor.java | 24 ++++---------------- .../GridCacheDatabaseSharedManager.java | 6 +++-- .../database/file/FilePageStoreManager.java | 7 +++--- .../database/wal/FileWriteAheadLogManager.java | 6 +++-- 5 files changed, 32 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/8004287c/modules/core/src/main/java/org/apache/ignite/internal/IgniteComponentType.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteComponentType.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteComponentType.java index 0cd2fc1..1b70ab4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteComponentType.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteComponentType.java @@ -89,7 +89,22 @@ public enum IgniteComponentType { "org.apache.ignite.internal.processors.schedule.IgniteNoopScheduleProcessor", "org.apache.ignite.internal.processors.schedule.IgniteScheduleProcessor", "ignite-schedule" - ); + ), + + /** Database manager used when persistence is enabled. */ + DATABASE_MANAGER(null, + "org.apache.ignite.internal.processors.cache.database.GridCacheDatabaseSharedManager", + "ignite-pds"), + + /** Page store manager used when persistence is enabled. */ + PAGE_STORE_MANAGER(null, + "org.apache.ignite.internal.processors.cache.database.file.FilePageStoreManager", + "ignite-pds"), + + /** Write-Ahead Log manager used when persistence is enabled. */ + WAL_MANAGER(null, + "org.apache.ignite.internal.processors.cache.database.wal.FileWriteAheadLogManager", + "ignite-pds"); /** No-op class name. */ private final String noOpClsName; http://git-wip-us.apache.org/repos/asf/ignite/blob/8004287c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java index bf13f18..fb82ac6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java @@ -2147,27 +2147,11 @@ public class GridCacheProcessor extends GridProcessorAdapter { IgniteWriteAheadLogManager walMgr = null; if (ctx.config().isPersistentEnable()) { - ClassLoader clsLdr = U.gridClassLoader(); + dbMgr = IgniteComponentType.DATABASE_MANAGER.create(ctx, false); - try { - dbMgr = (IgniteCacheDatabaseSharedManager) clsLdr - .loadClass("org.apache.ignite.internal.processors.cache.database.GridCacheDatabaseSharedManager") - .getConstructor(IgniteConfiguration.class) - .newInstance(ctx.config()); - - pageStoreMgr = (IgnitePageStoreManager) clsLdr - .loadClass("org.apache.ignite.internal.processors.cache.database.file.FilePageStoreManager") - .getConstructor(IgniteConfiguration.class) - .newInstance(ctx.config()); - - walMgr = (IgniteWriteAheadLogManager) clsLdr - .loadClass("org.apache.ignite.internal.processors.cache.database.wal.FileWriteAheadLogManager") - .getConstructor(IgniteConfiguration.class) - .newInstance(ctx.config()); - } - catch (Exception e) { - throw new IgniteCheckedException("Failed to initialize persistent store", e); - } + pageStoreMgr = IgniteComponentType.PAGE_STORE_MANAGER.create(ctx, false); + + walMgr = IgniteComponentType.WAL_MANAGER.create(ctx, false); } else dbMgr = new IgniteCacheDatabaseSharedManager(); http://git-wip-us.apache.org/repos/asf/ignite/blob/8004287c/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java ---------------------------------------------------------------------- diff --git a/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java b/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java index e5523ca..605be12 100755 --- a/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java +++ b/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java @@ -259,9 +259,11 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan private IgniteCacheSnapshotManager snapshotMgr; /** - * @param cfg Ignite configuration. + * @param ctx Kernal context. */ - public GridCacheDatabaseSharedManager(IgniteConfiguration cfg) { + public GridCacheDatabaseSharedManager(GridKernalContext ctx) { + IgniteConfiguration cfg = ctx.config(); + dbCfg = cfg.getPersistenceConfiguration(); assert dbCfg != null : "PageStore should not be created if persistence is disabled."; http://git-wip-us.apache.org/repos/asf/ignite/blob/8004287c/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/file/FilePageStoreManager.java ---------------------------------------------------------------------- diff --git a/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/file/FilePageStoreManager.java b/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/file/FilePageStoreManager.java index fdfd3e0..ae32462 100755 --- a/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/file/FilePageStoreManager.java +++ b/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/file/FilePageStoreManager.java @@ -79,15 +79,16 @@ public class FilePageStoreManager extends GridCacheSharedManagerAdapter implemen private final Set<Integer> cachesWithoutIdx = Collections.newSetFromMap(new ConcurrentHashMap<Integer, Boolean>()); /** - * @param igniteCfg Ignite configuration. + * @param ctx Kernal context. */ - public FilePageStoreManager(IgniteConfiguration igniteCfg) { + public FilePageStoreManager(GridKernalContext ctx) { + igniteCfg = ctx.config(); + PersistenceConfiguration pstCfg = igniteCfg.getPersistenceConfiguration(); assert pstCfg != null : "WAL should not be created if persistence is disabled."; this.pstCfg = pstCfg; - this.igniteCfg = igniteCfg; } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/8004287c/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/wal/FileWriteAheadLogManager.java ---------------------------------------------------------------------- diff --git a/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/wal/FileWriteAheadLogManager.java b/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/wal/FileWriteAheadLogManager.java index e53a92d..7b39369 100644 --- a/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/wal/FileWriteAheadLogManager.java +++ b/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/wal/FileWriteAheadLogManager.java @@ -157,9 +157,11 @@ public class FileWriteAheadLogManager extends GridCacheSharedManagerAdapter impl private ThreadLocal<WALPointer> lastWALPtr = new ThreadLocal<>(); /** - * @param igCfg Ignite Configuration. + * @param ctx Kernal context. */ - public FileWriteAheadLogManager(IgniteConfiguration igCfg) { + public FileWriteAheadLogManager(GridKernalContext ctx) { + igCfg = ctx.config(); + PersistenceConfiguration dbCfg = igCfg.getPersistenceConfiguration(); assert dbCfg != null : "WAL should not be created if persistence is disabled.";
