You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2017/10/26 14:03:48 UTC
ignite git commit: IGNITE-6746 - Fixing system cache persistence
Repository: ignite
Updated Branches:
refs/heads/ignite-6746 [created] ffc2c01cc
IGNITE-6746 - Fixing system cache persistence
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ffc2c01c
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ffc2c01c
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ffc2c01c
Branch: refs/heads/ignite-6746
Commit: ffc2c01cc054b2e66d13bfd36aa4c61970206683
Parents: 4c31549
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Thu Oct 26 17:03:30 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Thu Oct 26 17:03:30 2017 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheUtils.java | 14 ++++++++---
.../IgniteCacheDatabaseSharedManager.java | 26 ++++++++++++--------
2 files changed, 27 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ffc2c01c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
index 26e2254..1f289d0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
@@ -1701,14 +1701,22 @@ public class GridCacheUtils {
return false;
}
+
/**
* @return {@code true} if persistence is enabled for at least one data region, {@code false} if not.
*/
public static boolean isPersistenceEnabled(IgniteConfiguration cfg) {
- if (cfg.getDataStorageConfiguration() == null)
+ return isPersistenceEnabled(cfg.getDataStorageConfiguration());
+ }
+
+ /**
+ * @return {@code true} if persistence is enabled for at least one data region, {@code false} if not.
+ */
+ public static boolean isPersistenceEnabled(DataStorageConfiguration cfg) {
+ if (cfg == null)
return false;
- DataRegionConfiguration dfltReg = cfg.getDataStorageConfiguration().getDefaultDataRegionConfiguration();
+ DataRegionConfiguration dfltReg = cfg.getDefaultDataRegionConfiguration();
if (dfltReg == null)
return false;
@@ -1716,7 +1724,7 @@ public class GridCacheUtils {
if (dfltReg.isPersistenceEnabled())
return true;
- DataRegionConfiguration[] regCfgs = cfg.getDataStorageConfiguration().getDataRegionConfigurations();
+ DataRegionConfiguration[] regCfgs = cfg.getDataRegionConfigurations();
if (regCfgs == null)
return false;
http://git-wip-us.apache.org/repos/asf/ignite/blob/ffc2c01c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
index 933c195..f00edbe 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
@@ -57,6 +57,7 @@ import org.apache.ignite.internal.processors.cache.persistence.tree.reuse.ReuseL
import org.apache.ignite.internal.processors.cluster.IgniteChangeGlobalStateSupport;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.T2;
+import org.apache.ignite.internal.util.typedef.internal.CU;
import org.apache.ignite.internal.util.typedef.internal.LT;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteBiTuple;
@@ -218,36 +219,35 @@ public class IgniteCacheDatabaseSharedManager extends GridCacheSharedManagerAdap
if (dataRegionCfgs != null) {
for (DataRegionConfiguration dataRegionCfg : dataRegionCfgs)
- addDataRegion(memCfg, dataRegionCfg, dataRegionCfg.getName());
+ addDataRegion(memCfg, dataRegionCfg);
}
addDataRegion(
memCfg,
- memCfg.getDefaultDataRegionConfiguration(),
- memCfg.getDefaultDataRegionConfiguration().getName()
+ memCfg.getDefaultDataRegionConfiguration()
);
addDataRegion(
memCfg,
createSystemDataRegion(
memCfg.getSystemRegionInitialSize(),
- memCfg.getSystemRegionMaxSize()
- ),
- SYSTEM_DATA_REGION_NAME
+ memCfg.getSystemRegionMaxSize(),
+ CU.isPersistenceEnabled(memCfg)
+ )
);
}
/**
* @param dataStorageCfg Database config.
* @param dataRegionCfg Data region config.
- * @param dataRegionName Data region name.
* @throws IgniteCheckedException If failed to initialize swap path.
*/
private void addDataRegion(
DataStorageConfiguration dataStorageCfg,
- DataRegionConfiguration dataRegionCfg,
- String dataRegionName
+ DataRegionConfiguration dataRegionCfg
) throws IgniteCheckedException {
+ String dataRegionName = dataRegionCfg.getName();
+
String dfltMemPlcName = dataStorageCfg.getDefaultDataRegionConfiguration().getName();
if (dfltMemPlcName == null)
@@ -315,15 +315,21 @@ public class IgniteCacheDatabaseSharedManager extends GridCacheSharedManagerAdap
/**
* @param sysCacheInitSize Initial size of PageMemory to be created for system cache.
* @param sysCacheMaxSize Maximum size of PageMemory to be created for system cache.
+ * @param persistenceEnabled Persistence enabled flag.
*
* @return {@link DataRegionConfiguration configuration} of DataRegion for system cache.
*/
- private DataRegionConfiguration createSystemDataRegion(long sysCacheInitSize, long sysCacheMaxSize) {
+ private DataRegionConfiguration createSystemDataRegion(
+ long sysCacheInitSize,
+ long sysCacheMaxSize,
+ boolean persistenceEnabled
+ ) {
DataRegionConfiguration res = new DataRegionConfiguration();
res.setName(SYSTEM_DATA_REGION_NAME);
res.setInitialSize(sysCacheInitSize);
res.setMaxSize(sysCacheMaxSize);
+ res.setPersistenceEnabled(persistenceEnabled);
return res;
}