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,