ignite-5075
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/103f6816 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/103f6816 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/103f6816 Branch: refs/heads/ignite-5075 Commit: 103f68160451f4d9a3d7843736d210bb5999b683 Parents: a678809 Author: sboikov <sboi...@gridgain.com> Authored: Thu May 18 10:33:24 2017 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Thu May 18 10:33:38 2017 +0300 ---------------------------------------------------------------------- .../cache/CacheAffinitySharedManager.java | 10 ++-- .../processors/cache/ClusterCachesInfo.java | 6 +-- .../cache/DynamicCacheDescriptor.java | 10 ++++ .../GridDhtPartitionsExchangeFuture.java | 16 +++--- ...CacheExchangeMessageDuplicatedStateTest.java | 54 +++++++++++--------- ...IgniteCacheJdbcBlobStoreNodeRestartTest.java | 3 ++ 6 files changed, 59 insertions(+), 40 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/103f6816/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java ---------------------------------------------------------------------- diff --git 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 index e599344..c3311a8 100644 --- 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 @@ -386,7 +386,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap cctx.cache().prepareCacheStart(cacheDesc, nearCfg, fut.topologyVersion()); if (fut.cacheAddedOnExchange(cacheDesc.cacheId(), cacheDesc.receivedFrom())) { - if (fut.discoCache().cacheGroupAffinityNodes(cacheDesc.groupDescriptor().groupId()).isEmpty()) + if (fut.discoCache().cacheGroupAffinityNodes(cacheDesc.groupId()).isEmpty()) U.quietAndWarn(log, "No server nodes found for cache client: " + req.cacheName()); } } @@ -395,7 +395,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap Set<Integer> gprs = new HashSet<>(); for (ExchangeActions.ActionData action : exchActions.newAndClientCachesStartRequests()) { - Integer grpId = action.descriptor().groupDescriptor().groupId(); + Integer grpId = action.descriptor().groupId(); if (gprs.add(grpId)) { if (crd && lateAffAssign) @@ -403,7 +403,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap else { CacheGroupInfrastructure grp = cctx.cache().cacheGroup(grpId); - if (grp != null && grp.localStartVersion().equals(fut.topologyVersion())) { + if (grp != null && !grp.isLocal() && grp.localStartVersion().equals(fut.topologyVersion())) { assert grp.affinity().lastVersion().equals(AffinityTopologyVersion.NONE) : grp.affinity().lastVersion(); initAffinity(registeredGrps.get(grp.groupId()), grp.affinity(), fut); @@ -418,7 +418,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap cctx.cache().blockGateway(req.request()); if (crd) { - CacheGroupInfrastructure grp = cctx.cache().cacheGroup(req.descriptor().groupDescriptor().groupId()); + CacheGroupInfrastructure grp = cctx.cache().cacheGroup(req.descriptor().groupId()); assert grp != null; @@ -1755,7 +1755,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap assert ccfg.getCacheMode() != LOCAL : ccfg.getName(); assert !cctx.discovery().cacheGroupAffinityNodes(grpDesc.groupId(), - fut.topologyVersion()).contains(cctx.localNode()) : cacheDesc.cacheName(); + fut.topologyVersion()).contains(cctx.localNode()) : grpDesc.cacheOrGroupName(); AffinityFunction affFunc = cctx.cache().clone(ccfg.getAffinity()); http://git-wip-us.apache.org/repos/asf/ignite/blob/103f6816/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java ---------------------------------------------------------------------- diff --git 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 index b5dbc95..c6cee00 100644 --- 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 @@ -399,9 +399,9 @@ class ClusterCachesInfo { exchangeActions.addCacheToStop(req, desc); - CacheGroupDescriptor grpDesc = registeredCacheGrps.get(desc.groupDescriptor().groupId()); + CacheGroupDescriptor grpDesc = registeredCacheGrps.get(desc.groupId()); - assert grpDesc != null && grpDesc.groupId() == desc.groupDescriptor().groupId() : desc; + assert grpDesc != null && grpDesc.groupId() == desc.groupId() : desc; grpDesc.onCacheStopped(desc.cacheName(), desc.cacheId()); @@ -639,7 +639,7 @@ class ClusterCachesInfo { for (DynamicCacheDescriptor desc : registeredCaches.values()) { CacheData cacheData = new CacheData(desc.cacheConfiguration(), desc.cacheId(), - desc.groupDescriptor().groupId(), + desc.groupId(), desc.cacheType(), desc.deploymentId(), desc.schema(), http://git-wip-us.apache.org/repos/asf/ignite/blob/103f6816/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java index fcf3642..01ac9ae 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java @@ -143,6 +143,15 @@ public class DynamicCacheDescriptor { /** * @return Cache group ID. */ + public int groupId() { + assert grpDesc != null : this; + + return grpDesc.groupId(); + } + + /** + * @return Cache group descriptor. + */ public CacheGroupDescriptor groupDescriptor() { assert grpDesc != null : this; @@ -205,6 +214,7 @@ public class DynamicCacheDescriptor { * * @param proc Object processor. * @return Cache object context. + * @throws IgniteCheckedException If failed. */ public CacheObjectContext cacheObjectContext(IgniteCacheObjectProcessor proc) throws IgniteCheckedException { if (objCtx == null) { http://git-wip-us.apache.org/repos/asf/ignite/blob/103f6816/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java index b3a1002..d916e7d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java @@ -955,19 +955,19 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT private void warnNoAffinityNodes() { List<String> cachesWithoutNodes = null; - for (GridCacheContext ctx : cctx.cacheContexts()) { - if (discoCache.cacheGroupAffinityNodes(ctx.groupId()).isEmpty()) { + for (DynamicCacheDescriptor cacheDesc : cctx.cache().cacheDescriptors().values()) { + if (discoCache.cacheGroupAffinityNodes(cacheDesc.groupId()).isEmpty()) { if (cachesWithoutNodes == null) cachesWithoutNodes = new ArrayList<>(); - cachesWithoutNodes.add(ctx.name()); + cachesWithoutNodes.add(cacheDesc.cacheName()); // Fire event even if there is no client cache started. - if (ctx.gridEvents().isRecordable(EventType.EVT_CACHE_NODES_LEFT)) { + if (cctx.gridEvents().isRecordable(EventType.EVT_CACHE_NODES_LEFT)) { Event evt = new CacheEvent( - ctx.name(), - ctx.localNode(), - ctx.localNode(), + cacheDesc.cacheName(), + cctx.localNode(), + cctx.localNode(), "All server nodes have left the cluster.", EventType.EVT_CACHE_NODES_LEFT, 0, @@ -984,7 +984,7 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT null ); - ctx.gridEvents().record(evt); + cctx.gridEvents().record(evt); } } } http://git-wip-us.apache.org/repos/asf/ignite/blob/103f6816/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheExchangeMessageDuplicatedStateTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheExchangeMessageDuplicatedStateTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheExchangeMessageDuplicatedStateTest.java index d8a2065..f3a2204 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheExchangeMessageDuplicatedStateTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheExchangeMessageDuplicatedStateTest.java @@ -283,30 +283,33 @@ public class CacheExchangeMessageDuplicatedStateTest extends GridCommonAbstractT Map<Integer, Integer> dupPartsData, GridDhtPartitionsFullMessage msg) { - Integer cacheId; - Integer dupCacheId; + int cache1Grp = groupIdForCache(ignite(0), cache1); + int cache2Grp = groupIdForCache(ignite(0), cache2); - if (dupPartsData.containsKey(CU.cacheId(cache1))) { - cacheId = CU.cacheId(cache1); - dupCacheId = CU.cacheId(cache2); + Integer grpId; + Integer dupGrpId; + + if (dupPartsData.containsKey(cache1Grp)) { + grpId = cache1Grp; + dupGrpId = cache2Grp; } else { - cacheId = CU.cacheId(cache2); - dupCacheId = CU.cacheId(cache1); + grpId = cache2Grp; + dupGrpId = cache1Grp; } - assertTrue(dupPartsData.containsKey(cacheId)); - assertEquals(dupCacheId, dupPartsData.get(cacheId)); - assertFalse(dupPartsData.containsKey(dupCacheId)); + assertTrue(dupPartsData.containsKey(grpId)); + assertEquals(dupGrpId, dupPartsData.get(grpId)); + assertFalse(dupPartsData.containsKey(dupGrpId)); Map<Integer, GridDhtPartitionFullMap> parts = msg.partitions(); - GridDhtPartitionFullMap emptyFullMap = parts.get(cacheId); + GridDhtPartitionFullMap emptyFullMap = parts.get(grpId); for (GridDhtPartitionMap map : emptyFullMap.values()) assertEquals(0, map.map().size()); - GridDhtPartitionFullMap fullMap = parts.get(dupCacheId); + GridDhtPartitionFullMap fullMap = parts.get(dupGrpId); for (GridDhtPartitionMap map : fullMap.values()) assertFalse(map.map().isEmpty()); @@ -323,29 +326,32 @@ public class CacheExchangeMessageDuplicatedStateTest extends GridCommonAbstractT Map<Integer, Integer> dupPartsData, GridDhtPartitionsSingleMessage msg) { - Integer cacheId; - Integer dupCacheId; + int cache1Grp = groupIdForCache(ignite(0), cache1); + int cache2Grp = groupIdForCache(ignite(0), cache2); + + Integer grpId; + Integer dupGrpId; - if (dupPartsData.containsKey(CU.cacheId(cache1))) { - cacheId = CU.cacheId(cache1); - dupCacheId = CU.cacheId(cache2); + if (dupPartsData.containsKey(cache1Grp)) { + grpId = cache1Grp; + dupGrpId = cache2Grp; } else { - cacheId = CU.cacheId(cache2); - dupCacheId = CU.cacheId(cache1); + grpId = cache2Grp; + dupGrpId = cache1Grp; } - assertTrue(dupPartsData.containsKey(cacheId)); - assertEquals(dupCacheId, dupPartsData.get(cacheId)); - assertFalse(dupPartsData.containsKey(dupCacheId)); + assertTrue(dupPartsData.containsKey(grpId)); + assertEquals(dupGrpId, dupPartsData.get(grpId)); + assertFalse(dupPartsData.containsKey(dupGrpId)); Map<Integer, GridDhtPartitionMap> parts = msg.partitions(); - GridDhtPartitionMap emptyMap = parts.get(cacheId); + GridDhtPartitionMap emptyMap = parts.get(grpId); assertEquals(0, emptyMap.map().size()); - GridDhtPartitionMap map = parts.get(dupCacheId); + GridDhtPartitionMap map = parts.get(dupGrpId); assertFalse(map.map().isEmpty()); } http://git-wip-us.apache.org/repos/asf/ignite/blob/103f6816/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheJdbcBlobStoreNodeRestartTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheJdbcBlobStoreNodeRestartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheJdbcBlobStoreNodeRestartTest.java index 1c29098..83ddf67 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheJdbcBlobStoreNodeRestartTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheJdbcBlobStoreNodeRestartTest.java @@ -23,6 +23,9 @@ import org.apache.ignite.cache.store.CacheStore; import org.apache.ignite.cache.store.jdbc.CacheJdbcBlobStore; import org.apache.ignite.configuration.NearCacheConfiguration; +/** + * + */ public class IgniteCacheJdbcBlobStoreNodeRestartTest extends IgniteCacheStoreNodeRestartAbstractTest { /** {@inheritDoc} */ @Override protected CacheStore getStore() {