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 10:03:26 UTC
[7/7] ignite git commit: ignite-5075 cache start
ignite-5075 cache start
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/bf2360d5
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/bf2360d5
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/bf2360d5
Branch: refs/heads/ignite-5075-cacheStart
Commit: bf2360d5ffd645bbfb015123987fb949be48685d
Parents: e2cf06a
Author: sboikov <sb...@gridgain.com>
Authored: Tue May 2 10:37:40 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue May 2 13:00:05 2017 +0300
----------------------------------------------------------------------
.../cache/CacheAffinitySharedManager.java | 45 +++++----
.../CacheClientReconnectDiscoveryData.java | 34 ++++++-
.../internal/processors/cache/CacheData.java | 19 +++-
.../cache/CacheJoinNodeDiscoveryData.java | 39 +++++++-
.../cache/CacheNodeCommonDiscoveryData.java | 24 ++++-
.../processors/cache/ClusterCachesInfo.java | 13 ++-
.../cache/DynamicCacheChangeBatch.java | 4 +-
.../cache/DynamicCacheChangeRequest.java | 11 +++
.../processors/cache/ExchangeActions.java | 68 +++++++++++---
.../processors/cache/GridCacheContext.java | 27 +++---
.../GridCachePartitionExchangeManager.java | 20 ++--
.../processors/cache/GridCacheProcessor.java | 98 ++++++++++++--------
.../dht/GridDhtPartitionTopologyImpl.java | 10 +-
.../GridDhtPartitionsExchangeFuture.java | 4 +-
.../cache/query/GridCacheQueryManager.java | 3 +-
.../ignite/spi/discovery/DiscoveryDataBag.java | 22 ++---
.../processors/cache/IgniteCacheStartTest.java | 17 +++-
.../CacheLateAffinityAssignmentTest.java | 4 +-
.../loadtests/hashmap/GridCacheTestContext.java | 3 +
19 files changed, 329 insertions(+), 136 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/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 6b99e22..48bc6da 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
@@ -319,30 +319,35 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
}
}
+ /**
+ * @param exchActions Cache change requests to execte on exchange.
+ */
private void updateCachesInfo(ExchangeActions exchActions) {
for (DynamicCacheChangeRequest req : exchActions.stopRequests()) {
Integer cacheId = CU.cacheId(req.cacheName());
DynamicCacheDescriptor desc = registeredCaches.remove(cacheId);
- assert desc != null : cacheId;
+ assert desc != null : req.cacheName();
}
- for (ExchangeActions.ActionData action : exchActions.newCachesStartRequests()) {
+ for (ExchangeActions.ActionData action : exchActions.newAndClientCachesStartRequests()) {
DynamicCacheChangeRequest req = action.request();
- Integer cacheId = CU.cacheId(req.cacheName());
+ if (!req.clientStartOnly()) {
+ Integer cacheId = CU.cacheId(req.cacheName());
- DynamicCacheDescriptor desc = new DynamicCacheDescriptor(cctx.kernalContext(),
- req.startCacheConfiguration(),
- req.cacheType(),
- false,
- req.deploymentId(),
- req.schema());
+ DynamicCacheDescriptor desc = new DynamicCacheDescriptor(cctx.kernalContext(),
+ req.startCacheConfiguration(),
+ req.cacheType(),
+ false,
+ req.deploymentId(),
+ req.schema());
- DynamicCacheDescriptor old = registeredCaches.put(cacheId, desc);
+ DynamicCacheDescriptor old = registeredCaches.put(cacheId, desc);
- assert old == null : old;
+ assert old == null : old;
+ }
}
}
@@ -411,7 +416,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
if (clientCacheStarted)
initAffinity(cacheCtx.affinity().affinityCache(), fut, lateAffAssign);
else if (!req.clientStartOnly()) {
- assert fut.topologyVersion().equals(cacheCtx.startTopologyVersion());
+ assert fut.topologyVersion().equals(cacheCtx.cacheStartTopologyVersion());
GridAffinityAssignmentCache aff = cacheCtx.affinity().affinityCache();
@@ -600,7 +605,11 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
assert affTopVer.topologyVersion() > 0 : affTopVer;
- IgniteUuid deploymentId = registeredCaches.get(aff.cacheId()).deploymentId();
+ DynamicCacheDescriptor desc = registeredCaches.get(aff.cacheId());
+
+ assert desc != null : aff.cacheName();
+
+ IgniteUuid deploymentId = desc.deploymentId();
if (!deploymentId.equals(deploymentIds.get(aff.cacheId()))) {
aff.clientEventTopologyChange(exchFut.discoveryEvent(), topVer);
@@ -804,12 +813,10 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
*/
public void initStartedCaches(boolean crd,
final GridDhtPartitionsExchangeFuture fut,
- @Nullable Collection<DynamicCacheDescriptor> descs) throws IgniteCheckedException {
- if (descs != null) {
- for (DynamicCacheDescriptor desc : descs) {
- if (!registeredCaches.containsKey(desc.cacheId()))
- registeredCaches.put(desc.cacheId(), desc);
- }
+ Collection<DynamicCacheDescriptor> descs) throws IgniteCheckedException {
+ for (DynamicCacheDescriptor desc : descs) {
+ if (!registeredCaches.containsKey(desc.cacheId()))
+ registeredCaches.put(desc.cacheId(), desc);
}
if (crd && lateAffAssign) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheClientReconnectDiscoveryData.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheClientReconnectDiscoveryData.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheClientReconnectDiscoveryData.java
index b791e35..172547d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheClientReconnectDiscoveryData.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheClientReconnectDiscoveryData.java
@@ -18,13 +18,14 @@
package org.apache.ignite.internal.processors.cache;
import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.lang.IgniteUuid;
import java.io.Serializable;
import java.util.Map;
/**
- *
+ * Discovery data sent from client reconnecting to cluster.
*/
public class CacheClientReconnectDiscoveryData implements Serializable {
/** */
@@ -60,9 +61,16 @@ public class CacheClientReconnectDiscoveryData implements Serializable {
/** */
private final boolean nearCache;
- /** */
+ /** Flags added for future usage. */
private final byte flags;
+ /**
+ * @param ccfg Cache configuration.
+ * @param cacheType Cache type.
+ * @param deploymentId Cache deployment ID.
+ * @param nearCache Near cache flag.
+ * @param flags Flags (for future usage).
+ */
public CacheInfo(CacheConfiguration ccfg,
CacheType cacheType,
IgniteUuid deploymentId,
@@ -79,20 +87,42 @@ public class CacheClientReconnectDiscoveryData implements Serializable {
this.flags = flags;
}
+ /**
+ * @return Cache configuraiton.
+ */
CacheConfiguration config() {
return ccfg;
}
+ /**
+ * @return Cache type.
+ */
CacheType cacheType() {
return cacheType;
}
+ /**
+ * @return Cache deployment ID.
+ */
IgniteUuid deploymentId() {
return deploymentId;
}
+ /**
+ * @return Near cache flag.
+ */
boolean nearCache() {
return nearCache;
}
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(CacheInfo.class, this);
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(CacheClientReconnectDiscoveryData.class, this);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheData.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheData.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheData.java
index b38e03f..43422da 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheData.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheData.java
@@ -56,6 +56,21 @@ public class CacheData implements Serializable {
/** */
private final boolean template;
+ /** Flags added for future usage. */
+ private final byte flags;
+
+ /**
+ * @param cacheCfg Cache configuration.
+ * @param cacheId Cache ID.
+ * @param cacheType Cache ID.
+ * @param startTopVer Topology version when cache was started.
+ * @param deploymentId Cache deployment ID.
+ * @param schema Query schema.
+ * @param rcvdFrom Node ID cache was started from.
+ * @param staticCfg {@code True} if cache was statically configured.
+ * @param template {@code True} if this is cache template.
+ * @param flags Flags (added for future usage).
+ */
CacheData(CacheConfiguration cacheCfg,
int cacheId,
CacheType cacheType,
@@ -64,7 +79,8 @@ public class CacheData implements Serializable {
QuerySchema schema,
UUID rcvdFrom,
boolean staticCfg,
- boolean template) {
+ boolean template,
+ byte flags) {
assert cacheCfg != null;
assert rcvdFrom != null : cacheCfg.getName();
assert startTopVer != null : cacheCfg.getName();
@@ -80,6 +96,7 @@ public class CacheData implements Serializable {
this.rcvdFrom = rcvdFrom;
this.staticCfg = staticCfg;
this.template = template;
+ this.flags = flags;
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheJoinNodeDiscoveryData.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheJoinNodeDiscoveryData.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheJoinNodeDiscoveryData.java
index e04e739..94e5736 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheJoinNodeDiscoveryData.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheJoinNodeDiscoveryData.java
@@ -20,6 +20,8 @@ package org.apache.ignite.internal.processors.cache;
import java.io.Serializable;
import java.util.Map;
import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.util.tostring.GridToStringInclude;
+import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.lang.IgniteUuid;
/**
@@ -27,12 +29,15 @@ import org.apache.ignite.lang.IgniteUuid;
*/
class CacheJoinNodeDiscoveryData implements Serializable {
/** */
+ @GridToStringInclude
private final Map<String, CacheInfo> caches;
/** */
+ @GridToStringInclude
private final Map<String, CacheInfo> templates;
/** */
+ @GridToStringInclude
private final IgniteUuid cacheDeploymentId;
/**
@@ -49,14 +54,23 @@ class CacheJoinNodeDiscoveryData implements Serializable {
this.templates = templates;
}
+ /**
+ * @return Deployment ID assigned on joining node.
+ */
IgniteUuid cacheDeploymentId() {
return cacheDeploymentId;
}
+ /**
+ * @return Templates configured on joining node.
+ */
Map<String, CacheInfo> templates() {
return templates;
}
+ /**
+ * @return Caches configured on joining node.
+ */
Map<String, CacheInfo> caches() {
return caches;
}
@@ -66,26 +80,49 @@ class CacheJoinNodeDiscoveryData implements Serializable {
*/
static class CacheInfo implements Serializable {
/** */
+ @GridToStringInclude
private final CacheConfiguration ccfg;
/** */
+ @GridToStringInclude
private final CacheType cacheType;
- /** */
+ /** Flags added for future usage. */
private final byte flags;
+ /**
+ * @param ccfg Cache configuration.
+ * @param cacheType Cache type.
+ * @param flags Flags (for future usage).
+ */
CacheInfo(CacheConfiguration ccfg, CacheType cacheType, byte flags) {
this.ccfg = ccfg;
this.cacheType = cacheType;
this.flags = flags;
}
+ /**
+ * @return Cache configuration.
+ */
CacheConfiguration config() {
return ccfg;
}
+ /**
+ * @return Cache type.
+ */
CacheType cacheType() {
return cacheType;
}
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(CacheInfo.class, this);
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(CacheJoinNodeDiscoveryData.class, this);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheNodeCommonDiscoveryData.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheNodeCommonDiscoveryData.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheNodeCommonDiscoveryData.java
index a2a7b30..0109b3b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheNodeCommonDiscoveryData.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheNodeCommonDiscoveryData.java
@@ -20,24 +20,28 @@ package org.apache.ignite.internal.processors.cache;
import java.io.Serializable;
import java.util.Map;
import java.util.UUID;
+import org.apache.ignite.internal.util.tostring.GridToStringInclude;
+import org.apache.ignite.internal.util.typedef.internal.S;
/**
* Cache information sent in discovery data to joining node.
*/
class CacheNodeCommonDiscoveryData implements Serializable {
/** */
+ @GridToStringInclude
private final Map<String, CacheData> caches;
/** */
+ @GridToStringInclude
private final Map<String, CacheData> templates;
/** */
private final Map<String, Map<UUID, Boolean>> clientNodesMap;
/**
- * @param caches
- * @param templates
- * @param clientNodesMap
+ * @param caches Started caches.
+ * @param templates Configured templates.
+ * @param clientNodesMap Information about cache client nodes.
*/
CacheNodeCommonDiscoveryData(Map<String, CacheData> caches,
Map<String, CacheData> templates,
@@ -47,15 +51,29 @@ class CacheNodeCommonDiscoveryData implements Serializable {
this.clientNodesMap = clientNodesMap;
}
+ /**
+ * @return Started caches.
+ */
Map<String, CacheData> caches() {
return caches;
}
+ /**
+ * @return Configured templates.
+ */
Map<String, CacheData> templates() {
return templates;
}
+ /**
+ * @return Information about cache client nodes.
+ */
Map<String, Map<UUID, Boolean>> clientNodesMap() {
return clientNodesMap;
}
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(CacheNodeCommonDiscoveryData.class, this);
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/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 6cc09a0..645881f 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
@@ -378,15 +378,12 @@ class ClusterCachesInfo {
List<DynamicCacheDescriptor> started = null;
- if (!ctx.clientNode() && !ctx.isDaemon()) {
+ if (!ctx.isDaemon()) {
for (DynamicCacheDescriptor desc : registeredCaches.values()) {
if (desc.staticallyConfigured()) {
assert desc.receivedFrom() != null : desc;
- IgnitePredicate<ClusterNode> filter = desc.cacheConfiguration().getNodeFilter();
-
- if (joinedNodeId.equals(desc.receivedFrom()) &&
- CU.affinityNode(ctx.discovery().localNode(), filter)) {
+ if (joinedNodeId.equals(desc.receivedFrom())) {
if (started == null)
started = new ArrayList<>();
@@ -486,7 +483,8 @@ class ClusterCachesInfo {
desc.schema(),
desc.receivedFrom(),
desc.staticallyConfigured(),
- false);
+ false,
+ (byte)0);
caches.put(desc.cacheName(), cacheData);
}
@@ -502,7 +500,8 @@ class ClusterCachesInfo {
desc.schema(),
desc.receivedFrom(),
desc.staticallyConfigured(),
- true);
+ true,
+ (byte)0);
templates.put(desc.cacheName(), cacheData);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeBatch.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeBatch.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeBatch.java
index e27d5af..3c65326 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeBatch.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeBatch.java
@@ -32,7 +32,7 @@ public class DynamicCacheChangeBatch implements DiscoveryCustomMessage {
/** */
private static final long serialVersionUID = 0L;
- /** Custom message ID. */
+ /** Discovery custom message ID. */
private IgniteUuid id = IgniteUuid.randomUuid();
/** Change requests. */
@@ -91,7 +91,7 @@ public class DynamicCacheChangeBatch implements DiscoveryCustomMessage {
* @param exchangeActions Cache updates to be executed on exchange.
*/
void exchangeActions(ExchangeActions exchangeActions) {
- assert !exchangeActions.empty() : exchangeActions;
+ assert exchangeActions != null && !exchangeActions.empty() : exchangeActions;
this.exchangeActions = exchangeActions;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java
index e4c95a7..8fa763c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java
@@ -136,6 +136,11 @@ public class DynamicCacheChangeRequest implements Serializable {
return req;
}
+ /**
+ * @param ctx Context.
+ * @param cacheName Cache name.
+ * @return Request to close client cache.
+ */
static DynamicCacheChangeRequest closeRequest(GridKernalContext ctx, String cacheName) {
DynamicCacheChangeRequest req = new DynamicCacheChangeRequest(UUID.randomUUID(), cacheName, ctx.localNodeId());
@@ -144,6 +149,12 @@ public class DynamicCacheChangeRequest implements Serializable {
return req;
}
+ /**
+ * @param ctx Context.
+ * @param cacheName Cache name.
+ * @param destroy Destroy flag.
+ * @return Cache stop request.
+ */
static DynamicCacheChangeRequest stopRequest(GridKernalContext ctx, String cacheName, boolean destroy) {
DynamicCacheChangeRequest req = new DynamicCacheChangeRequest(UUID.randomUUID(), cacheName, ctx.localNodeId());
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ExchangeActions.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ExchangeActions.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ExchangeActions.java
index 6de02b8..9be4b6a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ExchangeActions.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ExchangeActions.java
@@ -31,7 +31,7 @@ import java.util.List;
import org.jetbrains.annotations.Nullable;
/**
- *
+ * Cache change requests to execute on request.
*/
public class ExchangeActions {
/** */
@@ -52,6 +52,9 @@ public class ExchangeActions {
/** */
private ClusterState newState;
+ /**
+ * @return {@code True} if server nodes should not participate in exchange.
+ */
public boolean clientOnlyExchange() {
return F.isEmpty(cachesToStart) &&
F.isEmpty(cachesToStop) &&
@@ -99,13 +102,6 @@ public class ExchangeActions {
}
/**
- * @return Start cache requests.
- */
- Collection<ActionData> newCachesStartRequests() {
- return cachesToStart != null ? cachesToStart.values() : Collections.<ActionData>emptyList();
- }
-
- /**
* @return Stop cache requests.
*/
public List<DynamicCacheChangeRequest> stopRequests() {
@@ -132,6 +128,10 @@ public class ExchangeActions {
completeRequestFutures(cachesToResetLostParts, ctx);
}
+ /**
+ * @param map Actions map.
+ * @param ctx Context.
+ */
private void completeRequestFutures(Map<String, ActionData> map, GridCacheSharedContext ctx) {
if (map != null) {
for (ActionData req : map.values())
@@ -147,7 +147,7 @@ public class ExchangeActions {
}
/**
- * @return
+ * @return Caches to reset lost partitions for.
*/
public Set<String> cachesToResetLostPartitions() {
Set<String> caches = null;
@@ -157,7 +157,11 @@ public class ExchangeActions {
return caches != null ? caches : Collections.<String>emptySet();
}
-
+
+ /**
+ * @param cacheId Cache ID.
+ * @return {@code True} if cache stop was requested.
+ */
public boolean cacheStopped(int cacheId) {
if (cachesToStop != null) {
for (ActionData cache : cachesToStop.values()) {
@@ -169,6 +173,10 @@ public class ExchangeActions {
return false;
}
+ /**
+ * @param cacheId Cache ID.
+ * @return {@code True} if cache start was requested.
+ */
public boolean cacheStarted(int cacheId) {
if (cachesToStart != null) {
for (ActionData cache : cachesToStart.values()) {
@@ -202,7 +210,15 @@ public class ExchangeActions {
return newState;
}
- private Map<String, ActionData> add(Map<String, ActionData> map, DynamicCacheChangeRequest req, DynamicCacheDescriptor desc) {
+ /**
+ * @param map Actions map.
+ * @param req Request.
+ * @param desc Cache descriptor.
+ * @return Actions map.
+ */
+ private Map<String, ActionData> add(Map<String, ActionData> map,
+ DynamicCacheChangeRequest req,
+ DynamicCacheDescriptor desc) {
assert req != null;
assert desc != null;
@@ -216,30 +232,50 @@ public class ExchangeActions {
return map;
}
+ /**
+ * @param req Request.
+ * @param desc Cache descriptor.
+ */
void addCacheToStart(DynamicCacheChangeRequest req, DynamicCacheDescriptor desc) {
assert req.start() : req;
cachesToStart = add(cachesToStart, req, desc);
}
+ /**
+ * @param req Request.
+ * @param desc Cache descriptor.
+ */
void addClientCacheToStart(DynamicCacheChangeRequest req, DynamicCacheDescriptor desc) {
assert req.start() : req;
clientCachesToStart = add(clientCachesToStart, req, desc);
}
+ /**
+ * @param req Request.
+ * @param desc Cache descriptor.
+ */
void addCacheToStop(DynamicCacheChangeRequest req, DynamicCacheDescriptor desc) {
assert req.stop() : req;
cachesToStop = add(cachesToStop, req, desc);
}
+ /**
+ * @param req Request.
+ * @param desc Cache descriptor.
+ */
void addCacheToClose(DynamicCacheChangeRequest req, DynamicCacheDescriptor desc) {
assert req.close() : req;
cachesToClose = add(cachesToClose, req, desc);
}
+ /**
+ * @param req Request.
+ * @param desc Cache descriptor.
+ */
void addCacheToResetLostPartitions(DynamicCacheChangeRequest req, DynamicCacheDescriptor desc) {
assert req.resetLostPartitions() : req;
@@ -267,6 +303,10 @@ public class ExchangeActions {
/** */
private DynamicCacheDescriptor desc;
+ /**
+ * @param req Request.
+ * @param desc Cache descriptor.
+ */
ActionData(DynamicCacheChangeRequest req, DynamicCacheDescriptor desc) {
assert req != null;
assert desc != null;
@@ -275,10 +315,16 @@ public class ExchangeActions {
this.desc = desc;
}
+ /**
+ * @return Request.
+ */
public DynamicCacheChangeRequest request() {
return req;
}
+ /**
+ * @return Cache descriptor.
+ */
public DynamicCacheDescriptor descriptor() {
return desc;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
index 72adeaf..6cb8907 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
@@ -235,7 +235,7 @@ public class GridCacheContext<K, V> implements Externalizable {
private CountDownLatch startLatch = new CountDownLatch(1);
/** Topology version when cache was started on local node. */
- private AffinityTopologyVersion startTopVer;
+ private AffinityTopologyVersion locStartTopVer;
/** Global cache start topology version. */
private AffinityTopologyVersion cacheStartTopVer;
@@ -292,6 +292,8 @@ public class GridCacheContext<K, V> implements Externalizable {
GridCacheSharedContext sharedCtx,
CacheConfiguration cacheCfg,
CacheType cacheType,
+ AffinityTopologyVersion cacheStartTopVer,
+ AffinityTopologyVersion locStartTopVer,
boolean affNode,
boolean updatesAllowed,
MemoryPolicy memPlc,
@@ -319,6 +321,8 @@ public class GridCacheContext<K, V> implements Externalizable {
assert ctx != null;
assert sharedCtx != null;
assert cacheCfg != null;
+ assert cacheStartTopVer != null : cacheCfg.getName();
+ assert locStartTopVer != null : cacheCfg.getName();
assert evtMgr != null;
assert storeMgr != null;
@@ -336,6 +340,8 @@ public class GridCacheContext<K, V> implements Externalizable {
this.sharedCtx = sharedCtx;
this.cacheCfg = cacheCfg;
this.cacheType = cacheType;
+ this.locStartTopVer = locStartTopVer;
+ this.cacheStartTopVer = cacheStartTopVer;
this.affNode = affNode;
this.updatesAllowed = updatesAllowed;
this.depEnabled = ctx.deploy().enabled() && !cacheObjects().isBinaryEnabled(cacheCfg);
@@ -448,24 +454,21 @@ public class GridCacheContext<K, V> implements Externalizable {
}
/**
- * @return Start topology version.
+ * @return Topology version when cache was started on local node.
*/
public AffinityTopologyVersion startTopologyVersion() {
- return startTopVer;
- }
+ assert locStartTopVer != null : name();
- /**
- * @param startTopVer Start topology version.
- */
- public void startTopologyVersion(AffinityTopologyVersion startTopVer) {
- this.startTopVer = startTopVer;
+ return locStartTopVer;
}
/**
- * @param cacheStartTopVer Global cache start topology version.
+ * @return Cache start topology version.
*/
- public void cacheStartTopologyVersion(AffinityTopologyVersion cacheStartTopVer) {
- this.cacheStartTopVer = cacheStartTopVer;
+ public AffinityTopologyVersion cacheStartTopologyVersion() {
+ assert cacheStartTopVer != null : name();
+
+ return cacheStartTopVer;
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index c2b0e27..8f52ae6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -363,10 +363,10 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
assert startTime > 0;
// Generate dummy discovery event for local node joining.
- T2<DiscoveryEvent, DiscoCache> localJoin = cctx.discovery().localJoin();
+ T2<DiscoveryEvent, DiscoCache> locJoin = cctx.discovery().localJoin();
- DiscoveryEvent discoEvt = localJoin.get1();
- DiscoCache discoCache = localJoin.get2();
+ DiscoveryEvent discoEvt = locJoin.get1();
+ DiscoCache discoCache = locJoin.get2();
GridDhtPartitionExchangeId exchId = initialExchangeId();
@@ -466,8 +466,10 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
}
}
+ AffinityTopologyVersion nodeStartVer = new AffinityTopologyVersion(discoEvt.topologyVersion(), 0);
+
for (GridCacheContext cacheCtx : cctx.cacheContexts()) {
- if (cacheCtx.startTopologyVersion() == null)
+ if (nodeStartVer.equals(cacheCtx.startTopologyVersion()))
cacheCtx.preloader().onInitialExchangeComplete(null);
}
@@ -893,9 +895,9 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
boolean ready;
if (exchId != null) {
- AffinityTopologyVersion startTopVer = cacheCtx.startTopologyVersion();
+ AffinityTopologyVersion startTopVer = cacheCtx.cacheStartTopologyVersion();
- ready = startTopVer == null || startTopVer.compareTo(exchId.topologyVersion()) <= 0;
+ ready = startTopVer.compareTo(exchId.topologyVersion()) <= 0;
}
else
ready = cacheCtx.started();
@@ -1298,10 +1300,8 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
GridCacheContext<K, V> cacheCtx = cctx.cacheContext(cacheId);
- if (cacheCtx != null && cacheCtx.startTopologyVersion() != null &&
- entry.getValue() != null &&
- entry.getValue().topologyVersion() != null && // Backward compatibility.
- cacheCtx.startTopologyVersion().compareTo(entry.getValue().topologyVersion()) > 0)
+ if (cacheCtx != null &&
+ cacheCtx.cacheStartTopologyVersion().compareTo(entry.getValue().topologyVersion()) > 0)
continue;
GridDhtPartitionTopology top = null;
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/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 0951676..b4e4b14 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
@@ -17,7 +17,6 @@
package org.apache.ignite.internal.processors.cache;
-import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -26,7 +25,6 @@ import java.util.Deque;
import java.util.HashMap;
import java.util.HashSet;
import java.util.IdentityHashMap;
-import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
@@ -60,13 +58,6 @@ import org.apache.ignite.configuration.NearCacheConfiguration;
import org.apache.ignite.configuration.TransactionConfiguration;
import org.apache.ignite.events.EventType;
import org.apache.ignite.internal.GridKernalContext;
-import org.apache.ignite.internal.processors.query.QuerySchema;
-import org.apache.ignite.internal.processors.query.QueryUtils;
-import org.apache.ignite.internal.processors.query.schema.message.SchemaAbstractDiscoveryMessage;
-import org.apache.ignite.internal.processors.query.schema.SchemaExchangeWorkerTask;
-import org.apache.ignite.internal.processors.query.schema.SchemaNodeLeaveExchangeWorkerTask;
-import org.apache.ignite.internal.processors.query.schema.message.SchemaProposeDiscoveryMessage;
-import org.apache.ignite.internal.suggestions.GridPerformanceSuggestions;
import org.apache.ignite.internal.IgniteClientDisconnectedCheckedException;
import org.apache.ignite.internal.IgniteComponentType;
import org.apache.ignite.internal.IgniteInternalFuture;
@@ -109,7 +100,14 @@ import org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersionManager;
import org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessor;
import org.apache.ignite.internal.processors.plugin.CachePluginManager;
+import org.apache.ignite.internal.processors.query.QuerySchema;
+import org.apache.ignite.internal.processors.query.QueryUtils;
+import org.apache.ignite.internal.processors.query.schema.SchemaExchangeWorkerTask;
+import org.apache.ignite.internal.processors.query.schema.SchemaNodeLeaveExchangeWorkerTask;
+import org.apache.ignite.internal.processors.query.schema.message.SchemaAbstractDiscoveryMessage;
+import org.apache.ignite.internal.processors.query.schema.message.SchemaProposeDiscoveryMessage;
import org.apache.ignite.internal.processors.timeout.GridTimeoutObject;
+import org.apache.ignite.internal.suggestions.GridPerformanceSuggestions;
import org.apache.ignite.internal.util.F0;
import org.apache.ignite.internal.util.future.GridCompoundFuture;
import org.apache.ignite.internal.util.future.GridFinishedFuture;
@@ -842,7 +840,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
ctx.service().onUtilityCacheStarted();
- AffinityTopologyVersion startTopVer = new AffinityTopologyVersion(locNode.order(), 0);
+ AffinityTopologyVersion startTopVer =
+ new AffinityTopologyVersion(ctx.discovery().localJoinEvent().topologyVersion(), 0);
for (GridCacheAdapter cache : caches.values()) {
CacheConfiguration cfg = cache.configuration();
@@ -1336,6 +1335,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
private GridCacheContext createCache(CacheConfiguration<?, ?> cfg,
@Nullable CachePluginManager pluginMgr,
CacheType cacheType,
+ AffinityTopologyVersion cacheStartTopVer,
+ AffinityTopologyVersion locStartTopVer,
CacheObjectContext cacheObjCtx,
boolean updatesAllowed)
throws IgniteCheckedException {
@@ -1410,6 +1411,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
sharedCtx,
cfg,
cacheType,
+ cacheStartTopVer,
+ locStartTopVer,
affNode,
updatesAllowed,
memPlc,
@@ -1541,6 +1544,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
sharedCtx,
cfg,
cacheType,
+ cacheStartTopVer,
+ locStartTopVer,
affNode,
true,
memPlc,
@@ -1733,23 +1738,34 @@ public class GridCacheProcessor extends GridProcessorAdapter {
/**
* @param exchTopVer Current exchange version.
* @throws IgniteCheckedException If failed.
+ * @return Collection of started caches.
*/
- public void startCachesOnLocalJoin(AffinityTopologyVersion exchTopVer) throws IgniteCheckedException {
+ public List<DynamicCacheDescriptor> startCachesOnLocalJoin(AffinityTopologyVersion exchTopVer) throws IgniteCheckedException {
List<T2<DynamicCacheDescriptor, NearCacheConfiguration>> caches = cachesInfo.cachesToStartOnLocalJoin();
- for (T2<DynamicCacheDescriptor, NearCacheConfiguration> t : caches) {
- DynamicCacheDescriptor desc = t.get1();
-
- prepareCacheStart(
- desc.cacheConfiguration(),
- t.get2(),
- desc.cacheType(),
- desc.deploymentId(),
- desc.startTopologyVersion(),
- exchTopVer,
- desc.schema()
- );
+ if (!F.isEmpty(caches)) {
+ List<DynamicCacheDescriptor> started = new ArrayList<>(caches.size());
+
+ for (T2<DynamicCacheDescriptor, NearCacheConfiguration> t : caches) {
+ DynamicCacheDescriptor desc = t.get1();
+
+ prepareCacheStart(
+ desc.cacheConfiguration(),
+ t.get2(),
+ desc.cacheType(),
+ desc.deploymentId(),
+ desc.startTopologyVersion(),
+ exchTopVer,
+ desc.schema()
+ );
+
+ started.add(desc);
+ }
+
+ return started;
}
+ else
+ return Collections.emptyList();
}
/**
@@ -1766,19 +1782,23 @@ public class GridCacheProcessor extends GridProcessorAdapter {
if (started != null) {
for (DynamicCacheDescriptor desc : started) {
- prepareCacheStart(
- desc.cacheConfiguration(),
- null,
- desc.cacheType(),
- desc.deploymentId(),
- desc.startTopologyVersion(),
- exchTopVer,
- desc.schema()
- );
+ IgnitePredicate<ClusterNode> filter = desc.cacheConfiguration().getNodeFilter();
+
+ if (CU.affinityNode(ctx.discovery().localNode(), filter)) {
+ prepareCacheStart(
+ desc.cacheConfiguration(),
+ null,
+ desc.cacheType(),
+ desc.deploymentId(),
+ desc.startTopologyVersion(),
+ exchTopVer,
+ desc.schema()
+ );
+ }
}
}
- return started;
+ return started != null ? started : Collections.<DynamicCacheDescriptor>emptyList();
}
/**
@@ -1809,11 +1829,13 @@ public class GridCacheProcessor extends GridProcessorAdapter {
CacheObjectContext cacheObjCtx = ctx.cacheObjects().contextForCache(ccfg);
- GridCacheContext cacheCtx = createCache(ccfg, null, cacheType, cacheObjCtx, true);
-
- cacheCtx.startTopologyVersion(exchTopVer);
-
- cacheCtx.cacheStartTopologyVersion(cacheStartTopVer);
+ GridCacheContext cacheCtx = createCache(ccfg,
+ null,
+ cacheType,
+ cacheStartTopVer,
+ exchTopVer,
+ cacheObjCtx,
+ true);
cacheCtx.dynamicDeploymentId(deploymentId);
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
index 38cbb8c..5b3dfc6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
@@ -393,7 +393,7 @@ class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
int num = cctx.affinity().partitions();
if (cctx.rebalanceEnabled()) {
- boolean added = exchFut.isCacheAdded(cctx.cacheId(), exchId.topologyVersion());
+ boolean added = exchId.topologyVersion().equals(cctx.cacheStartTopologyVersion());
boolean first = (loc.equals(oldest) && loc.id().equals(exchId.nodeId()) && exchId.isJoined()) || added;
@@ -1156,10 +1156,8 @@ class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
// If for some nodes current partition has a newer map,
// then we keep the newer value.
if (newPart != null &&
- (newPart.updateSequence() < part.updateSequence() || (
- cctx.startTopologyVersion() != null &&
- newPart.topologyVersion() != null && // Backward compatibility.
- cctx.startTopologyVersion().compareTo(newPart.topologyVersion()) > 0))
+ (newPart.updateSequence() < part.updateSequence() ||
+ (cctx.cacheStartTopologyVersion().compareTo(newPart.topologyVersion()) > 0))
) {
if (log.isDebugEnabled())
log.debug("Overriding partition map in full update map [exchId=" + exchId + ", curPart=" +
@@ -1169,7 +1167,7 @@ class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
}
}
- //remove entry if node left
+ // Remove entry if node left.
for (Iterator<UUID> it = partMap.keySet().iterator(); it.hasNext(); ) {
UUID nodeId = it.next();
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/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 320480c..bcfd8e0 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
@@ -634,8 +634,7 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
GridDhtPartitionTopology top = cacheCtx.topology();
if (crd) {
- boolean updateTop = !cacheCtx.isLocal() &&
- exchId.topologyVersion().equals(cacheCtx.startTopologyVersion());
+ boolean updateTop = exchId.topologyVersion().equals(cacheCtx.startTopologyVersion());
if (updateTop && clientTop != null)
top.update(exchId, clientTop.partitionMap(true), clientTop.updateCounters(false));
@@ -737,7 +736,6 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
private void clientOnlyExchange() throws IgniteCheckedException {
clientOnlyExchange = true;
- //todo checl invoke on client
if (crd != null) {
if (crd.isLocal()) {
for (GridCacheContext cacheCtx : cctx.cacheContexts()) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
index 0f7b0df..fcf534c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
@@ -272,8 +272,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
qryTopVer = cctx.startTopologyVersion();
- if (qryTopVer == null)
- qryTopVer = new AffinityTopologyVersion(cctx.localNode().order(), 0);
+ assert qryTopVer != null : cctx.name();
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryDataBag.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryDataBag.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryDataBag.java
index 1ca4ac7..3737d69 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryDataBag.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoveryDataBag.java
@@ -188,14 +188,15 @@ public class DiscoveryDataBag {
}
/**
- *
+ * @return ID on joining node.
*/
public UUID joiningNodeId() {
return joiningNodeId;
}
/**
- * @param cmpId component ID.
+ * @param cmpId Component ID.
+ * @return Discovery data for given component.
*/
public GridDiscoveryData gridDiscoveryData(int cmpId) {
if (gridData == null)
@@ -207,7 +208,8 @@ public class DiscoveryDataBag {
}
/**
- * @param cmpId component ID.
+ * @param cmpId Component ID.
+ * @return Joining node discovery data.
*/
public JoiningNodeDiscoveryData newJoinerDiscoveryData(int cmpId) {
if (newJoinerData == null)
@@ -218,12 +220,8 @@ public class DiscoveryDataBag {
return newJoinerData;
}
- void collectJoiningNodeData(DiscoveryDataBag dataBag) {
-
- }
-
/**
- * @param cmpId component ID.
+ * @param cmpId Component ID.
* @param data Data.
*/
public void addJoiningNodeData(Integer cmpId, Serializable data) {
@@ -231,7 +229,7 @@ public class DiscoveryDataBag {
}
/**
- * @param cmpId component ID.
+ * @param cmpId Component ID.
* @param data Data.
*/
public void addGridCommonData(Integer cmpId, Serializable data) {
@@ -239,7 +237,7 @@ public class DiscoveryDataBag {
}
/**
- * @param cmpId component ID.
+ * @param cmpId Component ID.
* @param data Data.
*/
public void addNodeSpecificData(Integer cmpId, Serializable data) {
@@ -250,7 +248,8 @@ public class DiscoveryDataBag {
}
/**
- * @param cmpId component ID.
+ * @param cmpId Component ID.
+ * @return {@code True} if common data collected for given component.
*/
public boolean commonDataCollectedFor(Integer cmpId) {
assert cmnDataInitializedCmps != null;
@@ -299,5 +298,4 @@ public class DiscoveryDataBag {
@Nullable public Map<Integer, Serializable> localNodeSpecificData() {
return nodeSpecificData.get(DEFAULT_KEY);
}
-
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStartTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStartTest.java
index da34424..21b8d0f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheStartTest.java
@@ -85,6 +85,12 @@ public class IgniteCacheStartTest extends GridCommonAbstractTest {
checkCache(0, "c1", true);
checkCache(1, "c1", true);
checkCache(2, "c1", false);
+
+ ignite(2).destroyCache("c1");
+
+ checkCache(0, "c1", false);
+ checkCache(1, "c1", false);
+ checkCache(2, "c1", false);
}
/**
@@ -144,6 +150,11 @@ public class IgniteCacheStartTest extends GridCommonAbstractTest {
checkCache(3, "c1", true);
checkCache(4, "c1", true);
checkCache(5, "c1", false);
+
+ ignite(5).destroyCache("c1");
+
+ for (int i = 0; i < 5; i++)
+ checkCache(i, "c1", false);
}
/**
@@ -151,11 +162,7 @@ public class IgniteCacheStartTest extends GridCommonAbstractTest {
* @return Cache configuration.
*/
private CacheConfiguration cacheConfiguration(String cacheName) {
- CacheConfiguration ccfg = new CacheConfiguration();
-
- ccfg.setName(cacheName);
-
- return ccfg;
+ return new CacheConfiguration(cacheName);
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
index fed388a..bc435e2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
@@ -2165,7 +2165,7 @@ public class CacheLateAffinityAssignmentTest extends GridCommonAbstractTest {
Map<String, List<List<ClusterNode>>> aff = new HashMap<>();
for (Ignite node : nodes) {
- log.info("Check node: " + node.name());
+ log.info("Check affinity [node=" + node.name() + ", topVer=" + topVer + ", expIdeal=" + expIdeal + ']');
IgniteKernal node0 = (IgniteKernal)node;
@@ -2175,7 +2175,7 @@ public class CacheLateAffinityAssignmentTest extends GridCommonAbstractTest {
fut.get();
for (GridCacheContext cctx : node0.context().cache().context().cacheContexts()) {
- if (cctx.startTopologyVersion() != null && cctx.startTopologyVersion().compareTo(topVer) > 0)
+ if (cctx.startTopologyVersion().compareTo(topVer) > 0)
continue;
List<List<ClusterNode>> aff1 = aff.get(cctx.name());
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf2360d5/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java b/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
index 0f4aa87..6149586 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
@@ -20,6 +20,7 @@ package org.apache.ignite.loadtests.hashmap;
import java.util.IdentityHashMap;
import org.apache.ignite.cache.store.CacheStore;
import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
import org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager;
import org.apache.ignite.internal.processors.cache.CacheOsConflictResolutionManager;
import org.apache.ignite.internal.processors.cache.CacheType;
@@ -78,6 +79,8 @@ public class GridCacheTestContext<K, V> extends GridCacheContext<K, V> {
),
defaultCacheConfiguration(),
CacheType.USER,
+ AffinityTopologyVersion.ZERO,
+ AffinityTopologyVersion.ZERO,
true,
true,
null,