You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/05/02 15:08:26 UTC
[25/26] ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-5075-cacheStart' into ignite-5075
Merge remote-tracking branch 'remotes/origin/ignite-5075-cacheStart' into ignite-5075
# Conflicts:
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/019d2f75
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/019d2f75
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/019d2f75
Branch: refs/heads/ignite-5075
Commit: 019d2f751223dc50fa5dafa3c816e238f0bb7844
Parents: da62feb 193b805
Author: sboikov <sb...@gridgain.com>
Authored: Tue May 2 17:04:08 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue May 2 17:04:08 2017 +0300
----------------------------------------------------------------------
.../cache/CacheAffinitySharedManager.java | 34 ++++-----
.../processors/cache/ClusterCachesInfo.java | 74 ++++++++++++++------
.../processors/cache/ExchangeActions.java | 13 +---
.../processors/cache/GridCacheProcessor.java | 74 ++++++++++----------
.../processors/cache/local/GridLocalCache.java | 31 +-------
.../cache/local/GridLocalLockFuture.java | 41 ++++++++++-
...ityFunctionBackupFilterAbstractSelfTest.java | 13 ++--
...gniteCacheP2pUnmarshallingNearErrorTest.java | 6 +-
...ePartitionedBasicStoreMultiNodeSelfTest.java | 22 ++++--
9 files changed, 174 insertions(+), 134 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/019d2f75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
index 8cc3a5e,45f463b..64c1fd7
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
@@@ -403,10 -397,10 +399,10 @@@ public class CacheAffinitySharedManager
}
if (startCache)
- cctx.cache().prepareCacheStart(req, nearCfg, action.descriptor(), fut.topologyVersion());
+ cctx.cache().prepareCacheStart(cacheDesc, nearCfg, fut.topologyVersion());
- if (fut.isCacheAdded(cacheId, fut.topologyVersion())) {
+ if (fut.isCacheAdded(cacheDesc.cacheId(), fut.topologyVersion())) {
- if (fut.discoCache().cacheAffinityNodes(req.cacheName()).isEmpty())
+ if (fut.discoCache().cacheGroupAffinityNodes(desc.groupDescriptor().groupId()).isEmpty())
U.quietAndWarn(log, "No server nodes found for cache client: " + req.cacheName());
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/019d2f75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java
index 88e15ae,1064de3..e539f79
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java
@@@ -426,20 -421,23 +430,23 @@@ class ClusterCachesInfo
locJoinStartCaches = new ArrayList<>();
- for (DynamicCacheDescriptor desc : registeredCaches.values()) {
- CacheConfiguration cfg = desc.cacheConfiguration();
+ if (!disconnectedState()) {
- processJoiningNode(joinDiscoData, node.id());
++ processJoiningNode(joinDiscoData, node.id(), topVer);
- CacheJoinNodeDiscoveryData.CacheInfo locCfg = joinDiscoData.caches().get(cfg.getName());
+ for (DynamicCacheDescriptor desc : registeredCaches.values()) {
+ CacheConfiguration cfg = desc.cacheConfiguration();
- boolean affNode = CU.affinityNode(ctx.discovery().localNode(), cfg.getNodeFilter());
+ CacheJoinNodeDiscoveryData.CacheInfo locCfg = joinDiscoData.caches().get(cfg.getName());
- NearCacheConfiguration nearCfg = (!affNode && locCfg != null) ? locCfg.config().getNearConfiguration() : null;
+ NearCacheConfiguration nearCfg = locCfg != null ? locCfg.config().getNearConfiguration() :
+ null;
- if (locCfg != null || CU.affinityNode(ctx.discovery().localNode(), cfg.getNodeFilter()))
- locJoinStartCaches.add(new T2<>(desc, nearCfg));
- }
+ if (locCfg != null || CU.affinityNode(ctx.discovery().localNode(), cfg.getNodeFilter()))
+ locJoinStartCaches.add(new T2<>(desc, nearCfg));
+ }
- joinDiscoData = null;
+ joinDiscoData = null;
+ }
}
else {
CacheJoinNodeDiscoveryData discoData = joiningNodesDiscoData.remove(node.id());
@@@ -648,6 -604,6 +652,15 @@@
}
}
++ private CacheGroupDescriptor groupDescriptor(int grpId) {
++ for (CacheGroupDescriptor desc : registeredCacheGrps.values()) {
++ if (desc.groupId() == grpId)
++ return desc;
++ }
++
++ return null;
++ }
++
/**
* @param clientData Discovery data.
* @param clientNodeId Client node ID.
@@@ -667,7 -623,11 +680,11 @@@
}
}
+ /**
+ * @param joinData Joined node discovery data.
+ * @param nodeId Joined node ID.
+ */
- private void processJoiningNode(CacheJoinNodeDiscoveryData joinData, UUID nodeId) {
+ private void processJoiningNode(CacheJoinNodeDiscoveryData joinData, UUID nodeId, AffinityTopologyVersion topVer) {
for (CacheJoinNodeDiscoveryData.CacheInfo cacheInfo : joinData.templates().values()) {
CacheConfiguration cfg = cacheInfo.config();
http://git-wip-us.apache.org/repos/asf/ignite/blob/019d2f75/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 4c95a24,2ed20e4..93d12ba
--- 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
@@@ -1824,23 -1786,9 +1809,23 @@@ public class GridCacheProcessor extend
return started != null ? started : Collections.<DynamicCacheDescriptor>emptyList();
}
+ private CacheGroupInfrastructure startCacheGroup(CacheConfiguration cfg0, int grpId) throws IgniteCheckedException {
+ CacheConfiguration ccfg = new CacheConfiguration(cfg0);
+
+ CacheGroupInfrastructure grp = new CacheGroupInfrastructure(grpId, sharedCtx, ccfg);
+
+ grp.start();
+
+ CacheGroupInfrastructure old = cacheGrps.put(grpId, grp);
+
+ assert old == null;
+
+ return grp;
+ }
+
/**
- * @param cfg Start configuration.
- * @param nearCfg Near configuration.
+ * @param startCfg Start configuration.
+ * @param reqNearCfg Near configuration if specified for client cache start request.
* @param cacheType Cache type.
* @param deploymentId Deployment ID.
* @param cacheStartTopVer Cache start topology version.
@@@ -1849,45 -1797,36 +1834,57 @@@
* @throws IgniteCheckedException If failed.
*/
private void prepareCacheStart(
- CacheConfiguration cfg,
- NearCacheConfiguration nearCfg,
+ CacheConfiguration startCfg,
+ @Nullable NearCacheConfiguration reqNearCfg,
CacheType cacheType,
+ int grpId,
IgniteUuid deploymentId,
AffinityTopologyVersion cacheStartTopVer,
AffinityTopologyVersion exchTopVer,
@Nullable QuerySchema schema
) throws IgniteCheckedException {
- assert !caches.containsKey(cfg.getName()) : cfg.getName();
+ assert !caches.containsKey(startCfg.getName()) : startCfg.getName();
+ String grpName = cfg.getGroupName();
+
+ CacheGroupInfrastructure grp = null;
+
+ if (grpName != null) {
+ for (CacheGroupInfrastructure grp0 : cacheGrps.values()) {
+ if (grp0.sharedGroup() && grpName.equals(grp0.groupName())) {
+ grp = grp0;
+
+ break;
+ }
+ }
+
+ if (grp == null)
+ grp = startCacheGroup(cfg, grpId);
+ }
+ else
+ grp = startCacheGroup(cfg, grpId);
+
- CacheConfiguration ccfg = new CacheConfiguration(cfg);
-
- if (nearCfg != null)
- ccfg.setNearConfiguration(nearCfg);
+ CacheConfiguration ccfg = new CacheConfiguration(startCfg);
CacheObjectContext cacheObjCtx = ctx.cacheObjects().contextForCache(ccfg);
+ boolean affNode;
+
+ if (ccfg.getCacheMode() == LOCAL) {
+ affNode = true;
+
+ ccfg.setNearConfiguration(null);
+ }
+ else if (CU.affinityNode(ctx.discovery().localNode(), ccfg.getNodeFilter()))
+ affNode = true;
+ else {
+ affNode = false;
+
+ ccfg.setNearConfiguration(reqNearCfg);
+ }
+
GridCacheContext cacheCtx = createCache(ccfg,
+ grp,
null,
cacheType,
cacheStartTopVer,