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/11 14:42:34 UTC
[5/7] 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/GridCachePartitionExchangeManager.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAssignmentFetchFuture.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b5c86708
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b5c86708
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b5c86708
Branch: refs/heads/ignite-5075
Commit: b5c86708c52d2efc85ee87ff67bde452a98ce2c6
Parents: b7424dc d24b08b
Author: sboikov <sb...@gridgain.com>
Authored: Thu May 11 17:02:41 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu May 11 17:02:41 2017 +0300
----------------------------------------------------------------------
.../cache/CacheAffinitySharedManager.java | 31 +++++++-----
.../internal/processors/cache/CacheData.java | 14 ------
.../processors/cache/ClusterCachesInfo.java | 47 +++++++-----------
.../cache/DynamicCacheDescriptor.java | 31 +++---------
.../processors/cache/GridCacheContext.java | 15 ------
.../processors/cache/GridCacheIoManager.java | 6 ++-
.../GridCachePartitionExchangeManager.java | 4 +-
.../processors/cache/GridCacheProcessor.java | 9 ----
.../dht/GridDhtAffinityAssignmentRequest.java | 32 ++++++-------
.../dht/GridDhtAffinityAssignmentResponse.java | 36 ++++++++++++--
.../dht/GridDhtAssignmentFetchFuture.java | 50 +++++++++++---------
.../dht/GridDhtPartitionTopologyImpl.java | 4 +-
.../continuous/CacheContinuousQueryManager.java | 1 -
.../loadtests/hashmap/GridCacheTestContext.java | 1 -
14 files changed, 127 insertions(+), 154 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/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 bd80bf0,bd41ccc..0443ba4
--- 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
@@@ -991,9 -1006,9 +998,9 @@@ public class CacheAffinitySharedManager
for (int i = 0; i < fetchFuts.size(); i++) {
GridDhtAssignmentFetchFuture fetchFut = fetchFuts.get(i);
- Integer grpId = fetchFut.key().get1();
- Integer cacheId = fetchFut.cacheId();
++ Integer grpId = fetchFut.cacheId();
- fetchAffinity(fut, cctx.cacheContext(cacheId).affinity().affinityCache(), fetchFut);
+ fetchAffinity(fut, cctx.cache().cacheGroup(grpId).affinity(), fetchFut);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheData.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheData.java
index fcad88a,0c97ab0..0927e25
--- 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
@@@ -79,9 -72,7 +75,8 @@@ public class CacheData implements Seria
*/
CacheData(CacheConfiguration cacheCfg,
int cacheId,
+ int grpId,
CacheType cacheType,
- AffinityTopologyVersion startTopVer,
IgniteUuid deploymentId,
QuerySchema schema,
UUID rcvdFrom,
@@@ -90,16 -81,12 +85,14 @@@
byte flags) {
assert cacheCfg != null;
assert rcvdFrom != null : cacheCfg.getName();
- assert startTopVer != null : cacheCfg.getName();
assert deploymentId != null : cacheCfg.getName();
assert template || cacheId != 0 : cacheCfg.getName();
+ assert template || grpId != 0 : cacheCfg.getName();
this.cacheCfg = cacheCfg;
this.cacheId = cacheId;
+ this.grpId = grpId;
this.cacheType = cacheType;
- this.startTopVer = startTopVer;
this.deploymentId = deploymentId;
this.schema = schema;
this.rcvdFrom = rcvdFrom;
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/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 9789fdf,efcf6a8..7800a45
--- 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
@@@ -637,9 -604,7 +633,8 @@@ class ClusterCachesInfo
for (DynamicCacheDescriptor desc : registeredCaches.values()) {
CacheData cacheData = new CacheData(desc.cacheConfiguration(),
desc.cacheId(),
+ desc.groupDescriptor().groupId(),
desc.cacheType(),
- desc.startTopologyVersion(),
desc.deploymentId(),
desc.schema(),
desc.receivedFrom(),
@@@ -668,9 -620,7 +663,8 @@@
for (DynamicCacheDescriptor desc : registeredTemplates.values()) {
CacheData cacheData = new CacheData(desc.cacheConfiguration(),
0,
+ 0,
desc.cacheType(),
- desc.startTopologyVersion(),
desc.deploymentId(),
desc.schema(),
desc.receivedFrom(),
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
index 94f86aa,2466a59..d5128f5
--- 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
@@@ -280,9 -288,7 +277,8 @@@ public class GridCacheContext<K, V> imp
GridKernalContext ctx,
GridCacheSharedContext sharedCtx,
CacheConfiguration cacheCfg,
+ CacheGroupInfrastructure grp,
CacheType cacheType,
- AffinityTopologyVersion cacheStartTopVer,
AffinityTopologyVersion locStartTopVer,
boolean affNode,
boolean updatesAllowed,
@@@ -308,10 -317,8 +304,9 @@@
assert ctx != null;
assert sharedCtx != null;
assert cacheCfg != null;
- assert cacheStartTopVer != null : cacheCfg.getName();
assert locStartTopVer != null : cacheCfg.getName();
+ assert grp != null;
assert evtMgr != null;
assert storeMgr != null;
assert evictMgr != null;
@@@ -327,10 -334,8 +322,9 @@@
this.ctx = ctx;
this.sharedCtx = sharedCtx;
this.cacheCfg = cacheCfg;
+ this.grp = grp;
this.cacheType = cacheType;
this.locStartTopVer = locStartTopVer;
- this.cacheStartTopVer = cacheStartTopVer;
this.affNode = affNode;
this.updatesAllowed = updatesAllowed;
this.depEnabled = ctx.deploy().enabled() && !cacheObjects().isBinaryEnabled(cacheCfg);
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index e426426,04c647f..98ad758
--- 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
@@@ -897,35 -889,37 +897,35 @@@ public class GridCachePartitionExchange
final Map<Object, T2<Integer, GridDhtPartitionFullMap>> dupData = new HashMap<>();
- cctx.forAllCaches(new IgniteInClosure<GridCacheContext>() {
- @Override public void apply(GridCacheContext cacheCtx) {
- if (!cacheCtx.isLocal()) {
- boolean ready;
+ for (CacheGroupInfrastructure grp : cctx.cache().cacheGroups()) {
+ if (!grp.isLocal()) {
+ boolean ready;
- if (exchId != null) {
- AffinityTopologyVersion startTopVer = cacheCtx.startTopologyVersion();
+ if (exchId != null) {
- AffinityTopologyVersion startTopVer = grp.groupStartVersion();
++ AffinityTopologyVersion startTopVer = grp.localStartVersion();
- ready = startTopVer.compareTo(exchId.topologyVersion()) <= 0;
- }
- else
- ready = cacheCtx.started();
+ ready = startTopVer.compareTo(exchId.topologyVersion()) <= 0;
+ }
+ else
+ ready = grp.started();
- if (ready) {
- GridAffinityAssignmentCache affCache = cacheCtx.affinity().affinityCache();
+ if (ready) {
+ GridAffinityAssignmentCache affCache = grp.affinity();
- GridDhtPartitionFullMap locMap = cacheCtx.topology().partitionMap(true);
+ GridDhtPartitionFullMap locMap = grp.topology().partitionMap(true);
- addFullPartitionsMap(m,
- dupData,
- compress,
- cacheCtx.cacheId(),
- locMap,
- affCache.similarAffinityKey());
+ addFullPartitionsMap(m,
+ dupData,
+ compress,
+ grp.groupId(),
+ locMap,
+ affCache.similarAffinityKey());
- if (exchId != null)
- m.addPartitionUpdateCounters(cacheCtx.cacheId(), cacheCtx.topology().updateCounters(true));
- }
+ if (exchId != null)
+ m.addPartitionUpdateCounters(grp.groupId(), grp.topology().updateCounters(true));
}
}
- });
+ }
// It is important that client topologies be added after contexts.
for (GridClientPartitionTopology top : cctx.exchange().clientTopologies()) {
@@@ -1299,12 -1296,12 +1299,12 @@@
boolean updated = false;
for (Map.Entry<Integer, GridDhtPartitionMap> entry : msg.partitions().entrySet()) {
- Integer cacheId = entry.getKey();
+ Integer grpId = entry.getKey();
- GridCacheContext<K, V> cacheCtx = cctx.cacheContext(cacheId);
+ CacheGroupInfrastructure grp = cctx.cache().cacheGroup(grpId);
- if (cacheCtx != null &&
- cacheCtx.startTopologyVersion().compareTo(entry.getValue().topologyVersion()) > 0)
+ if (grp != null &&
- grp.groupStartVersion().compareTo(entry.getValue().topologyVersion()) > 0)
++ grp.localStartVersion().compareTo(entry.getValue().topologyVersion()) > 0)
continue;
GridDhtPartitionTopology top = null;
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/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 86ead93,f9b015d..a72f21c
--- 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
@@@ -1363,10 -1343,8 +1363,9 @@@ public class GridCacheProcessor extend
* @throws IgniteCheckedException If failed to create cache.
*/
private GridCacheContext createCache(CacheConfiguration<?, ?> cfg,
+ CacheGroupInfrastructure grp,
@Nullable CachePluginManager pluginMgr,
CacheType cacheType,
- AffinityTopologyVersion cacheStartTopVer,
AffinityTopologyVersion locStartTopVer,
CacheObjectContext cacheObjCtx,
boolean affNode,
@@@ -1435,9 -1418,7 +1434,8 @@@
ctx,
sharedCtx,
cfg,
+ grp,
cacheType,
- cacheStartTopVer,
locStartTopVer,
affNode,
updatesAllowed,
@@@ -1566,9 -1550,7 +1564,8 @@@
ctx,
sharedCtx,
cfg,
+ grp,
cacheType,
- cacheStartTopVer,
locStartTopVer,
affNode,
true,
@@@ -1852,40 -1828,9 +1844,39 @@@
ccfg.setNearConfiguration(reqNearCfg);
}
+ String grpName = startCfg.getGroupName();
+
+ CacheGroupInfrastructure grp = null;
+
+ if (grpName != null) {
+ for (CacheGroupInfrastructure grp0 : cacheGrps.values()) {
+ if (grp0.sharedGroup() && grpName.equals(grp0.name())) {
+ grp = grp0;
+
+ break;
+ }
+ }
+
+ if (grp == null) {
+ grp = startCacheGroup(grpDesc,
+ cacheType,
+ affNode,
+ cacheObjCtx,
+ exchTopVer);
+ }
+ }
+ else {
+ grp = startCacheGroup(grpDesc,
+ cacheType,
+ affNode,
+ cacheObjCtx,
+ exchTopVer);
+ }
+
GridCacheContext cacheCtx = createCache(ccfg,
+ grp,
null,
cacheType,
- cacheStartTopVer,
exchTopVer,
cacheObjCtx,
affNode,
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
index 14eb92f,f80adc5..d9d642a
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
@@@ -45,19 -45,19 +45,19 @@@ public class GridDhtAffinityAssignmentR
}
/**
+ * @param futId Future ID.
- * @param cacheId Cache ID.
+ * @param grpId Cache group ID.
* @param topVer Topology version.
- * @param waitTopVer Topology version to wait for before message processing.
*/
- public GridDhtAffinityAssignmentRequest(int grpId,
- AffinityTopologyVersion topVer,
- AffinityTopologyVersion waitTopVer) {
+ public GridDhtAffinityAssignmentRequest(
+ long futId,
- int cacheId,
++ int grpId,
+ AffinityTopologyVersion topVer) {
assert topVer != null;
- assert waitTopVer != null;
+ this.futId = futId;
- this.cacheId = cacheId;
+ this.grpId = grpId;
this.topVer = topVer;
- this.waitTopVer = waitTopVer;
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
index 6c01c8d,5d82171..4df3fc1
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
@@@ -67,14 -72,18 +70,18 @@@ public class GridDhtAffinityAssignmentR
}
/**
+ * @param futId Future ID.
- * @param cacheId Cache ID.
+ * @param grpId Cache group ID.
* @param topVer Topology version.
* @param affAssignment Affinity assignment.
*/
- public GridDhtAffinityAssignmentResponse(int grpId,
+ public GridDhtAffinityAssignmentResponse(
+ long futId,
- int cacheId,
++ int grpId,
@NotNull AffinityTopologyVersion topVer,
List<List<ClusterNode>> affAssignment) {
+ this.futId = futId;
- this.cacheId = cacheId;
+ this.grpId = grpId;
this.topVer = topVer;
affAssignmentIds = ids(affAssignment);
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAssignmentFetchFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAssignmentFetchFuture.java
index c8966ed,741ca5e..c008ef3
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAssignmentFetchFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAssignmentFetchFuture.java
@@@ -66,11 -68,13 +69,13 @@@ public class GridDhtAssignmentFetchFutu
private ClusterNode pendingNode;
/** */
- @GridToStringInclude
- private final T2<Integer, AffinityTopologyVersion> key;
+ private final long id;
/** */
- private final CacheGroupDescriptor grpDesc;
+ private final AffinityTopologyVersion topVer;
+
+ /** */
- private final int cacheId;
++ private final int grpId;
/**
* @param ctx Context.
@@@ -84,11 -88,13 +89,13 @@@
AffinityTopologyVersion topVer,
DiscoCache discoCache
) {
+ this.topVer = topVer;
- this.cacheId = cacheDesc.cacheId();
++ this.grpId = grpDesc.groupId();
this.ctx = ctx;
- this.grpDesc = grpDesc;
- this.key = new T2<>(grpDesc.groupId(), topVer);
+
+ id = idGen.getAndIncrement();
- Collection<ClusterNode> availableNodes = discoCache.cacheAffinityNodes(cacheDesc.cacheId());
+ Collection<ClusterNode> availableNodes = discoCache.cacheGroupAffinityNodes(grpDesc.groupId());
LinkedList<ClusterNode> tmp = new LinkedList<>();
@@@ -190,7 -195,7 +196,7 @@@
", node=" + node + ']');
ctx.io().send(node,
- new GridDhtAffinityAssignmentRequest(key.get1(), key.get2(), grpDesc.startTopologyVersion()),
- new GridDhtAffinityAssignmentRequest(id, cacheId, topVer),
++ new GridDhtAffinityAssignmentRequest(id, grpId, topVer),
AFFINITY_POOL);
// Close window for listener notification.
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
index b76f548,58ad600..8ea9e46
--- 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
@@@ -396,12 -388,12 +396,12 @@@ public class GridDhtPartitionTopologyIm
", futVer=" + exchFut.topologyVersion() +
", fut=" + exchFut + ']';
- List<List<ClusterNode>> aff = cctx.affinity().assignments(exchFut.topologyVersion());
+ List<List<ClusterNode>> aff = grp.affinity().assignments(exchFut.topologyVersion());
- int num = cctx.affinity().partitions();
+ int num = grp.affinity().partitions();
- if (cctx.rebalanceEnabled()) {
- boolean added = exchId.topologyVersion().equals(cctx.startTopologyVersion());
+ if (grp.rebalanceEnabled()) {
- boolean added = exchId.topologyVersion().equals(grp.groupStartVersion());
++ boolean added = exchId.topologyVersion().equals(grp.localStartVersion());
boolean first = (loc.equals(oldest) && loc.id().equals(exchId.nodeId()) && exchId.isJoined()) || added;
@@@ -1173,7 -1157,7 +1173,7 @@@
// then we keep the newer value.
if (newPart != null &&
(newPart.updateSequence() < part.updateSequence() ||
- (grp.groupStartVersion().compareTo(newPart.topologyVersion()) > 0))
- (cctx.startTopologyVersion().compareTo(newPart.topologyVersion()) > 0))
++ (grp.localStartVersion().compareTo(newPart.topologyVersion()) > 0))
) {
if (log.isDebugEnabled())
log.debug("Overriding partition map in full update map [exchId=" + exchId + ", curPart=" +
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b5c86708/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
index 5a7dbc1,4f0d9a1..9126fd2
--- 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
@@@ -78,12 -78,13 +78,11 @@@ public class GridCacheTestContext<K, V
null
),
defaultCacheConfiguration(),
+ null,
CacheType.USER,
AffinityTopologyVersion.ZERO,
- AffinityTopologyVersion.ZERO,
true,
true,
- null,
- null,
- null,
new GridCacheEventManager(),
new CacheOsStoreManager(null, new CacheConfiguration()),
new GridCacheEvictionManager(),