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/17 22:23:58 UTC
[01/15] ignite git commit: Web Console: bind to all interfaces in dev
mode.
Repository: ignite
Updated Branches:
refs/heads/ignite-5075 88b094485 -> f974c53b9
Web Console: bind to all interfaces in dev mode.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c4b7f401
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c4b7f401
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c4b7f401
Branch: refs/heads/ignite-5075
Commit: c4b7f401b410a5dbd051d42abaf5fca4bc394cc3
Parents: 7a4a194
Author: Andrey Novikov <an...@gridgain.com>
Authored: Wed May 17 15:51:16 2017 +0700
Committer: Andrey Novikov <an...@gridgain.com>
Committed: Wed May 17 15:51:16 2017 +0700
----------------------------------------------------------------------
modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js | 2 +-
.../gulpfile.babel.js/webpack/environments/development.js | 5 +----
2 files changed, 2 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/c4b7f401/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js
index 07244b9..d42a711 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js
@@ -28,7 +28,7 @@ gulp.task('bundle', (cb) => {
if (process.env.NODE_ENV === 'development') {
// Important! Call webpack and WebpackDevServer must be inline.
new WebpackDevServer(webpack(webpackConfig), devServerConfig)
- .listen(devServerConfig.port, devServerConfig.host || 'localhost', cb);
+ .listen(devServerConfig.port, devServerConfig.host, cb);
}
else
webpack(webpackConfig, cb);
http://git-wip-us.apache.org/repos/asf/ignite/blob/c4b7f401/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
index 87094a8..28ecc13 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
@@ -19,7 +19,7 @@ import {destDir} from '../../paths';
const backendPort = 3000;
const devServerPort = process.env.PORT || 9000;
-const devServerHost = process.env.HOST;
+const devServerHost = process.env.HOST || '0.0.0.0';
export default {
devtool: 'source-map',
@@ -33,17 +33,14 @@ export default {
proxy: {
'/socket.io': {
target: `http://localhost:${backendPort}`,
- changeOrigin: true,
ws: true
},
'/agents': {
target: `http://localhost:${backendPort}`,
- changeOrigin: true,
ws: true
},
'/api/v1/*': {
target: `http://localhost:${backendPort}`,
- changeOrigin: true,
pathRewrite: {
'^/api/v1': ''
}
[05/15] ignite git commit: IGNITE-4597: CPP: Add methods to reset
arguments in sql query.
Posted by sb...@apache.org.
IGNITE-4597: CPP: Add methods to reset arguments in sql query.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/03ed3813
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/03ed3813
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/03ed3813
Branch: refs/heads/ignite-5075
Commit: 03ed3813c51d06653a88162e8822468a66f462ba
Parents: ccaed07
Author: Igor Sapego <is...@gridgain.com>
Authored: Wed May 17 13:15:06 2017 +0300
Committer: Igor Sapego <is...@gridgain.com>
Committed: Wed May 17 13:33:40 2017 +0300
----------------------------------------------------------------------
.../cpp/core-test/src/cache_query_test.cpp | 22 ++++++++++++++++++++
.../core/include/ignite/cache/query/query_sql.h | 8 +++++++
.../ignite/cache/query/query_sql_fields.h | 10 ++++++++-
.../query-example/src/query_example.cpp | 6 +++---
4 files changed, 42 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/03ed3813/modules/platforms/cpp/core-test/src/cache_query_test.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core-test/src/cache_query_test.cpp b/modules/platforms/cpp/core-test/src/cache_query_test.cpp
index e9c4610..65dcda5 100644
--- a/modules/platforms/cpp/core-test/src/cache_query_test.cpp
+++ b/modules/platforms/cpp/core-test/src/cache_query_test.cpp
@@ -871,6 +871,20 @@ BOOST_AUTO_TEST_CASE(TestSqlQuery)
cursor = cache.Query(qry);
CheckSingleGetAllIter(cursor, 1, "A1", 10);
+ // Test resetting query arguments.
+ qry.ClearArguments();
+ qry.AddArgument<int>(30);
+ qry.AddArgument<std::string>("A2");
+
+ cursor = cache.Query(qry);
+ CheckSingle(cursor, 2, "A2", 20);
+
+ cursor = cache.Query(qry);
+ CheckSingleGetAll(cursor, 2, "A2", 20);
+
+ cursor = cache.Query(qry);
+ CheckSingleGetAllIter(cursor, 2, "A2", 20);
+
// Test query returning multiple entries.
qry = SqlQuery("QueryPerson", "age < 30");
@@ -1150,6 +1164,14 @@ BOOST_AUTO_TEST_CASE(TestSqlFieldsQueryBasic)
cursor = cache.Query(qry);
CheckSingle(cursor, 1, "A1", 10);
+
+ // Test resetting query arguments.
+ qry.ClearArguments();
+ qry.AddArgument<int>(30);
+ qry.AddArgument<std::string>("A2");
+
+ cursor = cache.Query(qry);
+ CheckSingle(cursor, 2, "A2", 20);
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/03ed3813/modules/platforms/cpp/core/include/ignite/cache/query/query_sql.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/cache/query/query_sql.h b/modules/platforms/cpp/core/include/ignite/cache/query/query_sql.h
index 289d70a..d733476 100644
--- a/modules/platforms/cpp/core/include/ignite/cache/query/query_sql.h
+++ b/modules/platforms/cpp/core/include/ignite/cache/query/query_sql.h
@@ -245,6 +245,14 @@ namespace ignite
}
/**
+ * Remove all added arguments.
+ */
+ void ClearArguments()
+ {
+ args.clear();
+ }
+
+ /**
* Write query info to the stream.
*
* @param writer Writer.
http://git-wip-us.apache.org/repos/asf/ignite/blob/03ed3813/modules/platforms/cpp/core/include/ignite/cache/query/query_sql_fields.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/cache/query/query_sql_fields.h b/modules/platforms/cpp/core/include/ignite/cache/query/query_sql_fields.h
index 7c09d85..954cf43 100644
--- a/modules/platforms/cpp/core/include/ignite/cache/query/query_sql_fields.h
+++ b/modules/platforms/cpp/core/include/ignite/cache/query/query_sql_fields.h
@@ -268,6 +268,14 @@ namespace ignite
}
/**
+ * Remove all added arguments.
+ */
+ void ClearArguments()
+ {
+ args.clear();
+ }
+
+ /**
* Write query info to the stream.
*
* @param writer Writer.
@@ -312,4 +320,4 @@ namespace ignite
}
}
-#endif //_IGNITE_CACHE_QUERY_QUERY_SQL_FIELDS
\ No newline at end of file
+#endif //_IGNITE_CACHE_QUERY_QUERY_SQL_FIELDS
http://git-wip-us.apache.org/repos/asf/ignite/blob/03ed3813/modules/platforms/cpp/examples/query-example/src/query_example.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/examples/query-example/src/query_example.cpp b/modules/platforms/cpp/examples/query-example/src/query_example.cpp
index 9524100..db7437e 100644
--- a/modules/platforms/cpp/examples/query-example/src/query_example.cpp
+++ b/modules/platforms/cpp/examples/query-example/src/query_example.cpp
@@ -77,7 +77,7 @@ void DoSqlQueryWithDistributedJoin()
std::cout << std::endl;
- qry = SqlQuery("Person", joinSql);
+ qry.ClearArguments();
qry.AddArgument<std::string>("Other");
@@ -258,7 +258,7 @@ void DoSqlQueryWithJoin()
std::cout << "Following people are 'Other' employees: " << std::endl;
- qry = SqlQuery(PERSON_TYPE, sql);
+ qry.ClearArguments();
qry.AddArgument<std::string>("Other");
@@ -302,7 +302,7 @@ void DoSqlQuery()
std::cout << std::endl;
- qry = SqlQuery(PERSON_TYPE, sql);
+ qry.ClearArguments();
// Execute queries for salary range 1000 - 2000.
std::cout << "People with salaries between 1000 and 2000 (queried with SQL query): " << std::endl;
[07/15] ignite git commit: Results printout for IO latency test
Posted by sb...@apache.org.
Results printout for IO latency test
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a0fc6ee6
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a0fc6ee6
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a0fc6ee6
Branch: refs/heads/ignite-5075
Commit: a0fc6ee6018007ed9b358b1766e4998cd0a1e9d2
Parents: 958b08f
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Wed May 17 16:36:27 2017 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Wed May 17 16:36:27 2017 +0300
----------------------------------------------------------------------
.../managers/communication/GridIoManager.java | 68 +++++++++++++++-----
1 file changed, 52 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a0fc6ee6/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index fc94667..800f3cc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@ -524,7 +524,9 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
Thread.sleep(sleepDuration);
}
- // At this point all threads have finished the test and stored data to the result map.
+ // At this point all threads have finished the test and
+ // stored data to the resulting array of maps.
+ // Need to iterate it over and sum values for all threads.
Map<UUID, long[]> res0 = new HashMap<>();
for (Map<UUID, long[]> r : res) {
@@ -540,21 +542,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
}
}
- StringBuilder b = new StringBuilder("IO test results " +
- "[range=" + (maxLatency / (1000 * rangesCnt)) + "mcs]");
-
- b.append(U.nl());
-
- for (Entry<UUID, long[]> e : res0.entrySet()) {
- ClusterNode node = ctx.discovery().node(e.getKey());
-
- b.append(" ").append(e.getKey()).append(" (addrs=")
- .append(node != null ? node.addresses().toString() : "n/a").append(')')
- .append(Arrays.toString(e.getValue())).append(U.nl());
- }
-
- if (log.isInfoEnabled())
- log.info(b.toString());
+ printIoTestResults(maxLatency / (1000 * rangesCnt), res0);
}
catch (InterruptedException | BrokenBarrierException e) {
U.error(log, "IO test failed.", e);
@@ -637,6 +625,54 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
}
}
+ /**
+ * @param binLatencyMcs Bin latency in microseconds.
+ * @param res Resulting map.
+ */
+ private void printIoTestResults(long binLatencyMcs, Map<UUID, long[]> res) {
+ StringBuilder b = new StringBuilder(U.nl())
+ .append("IO test results (round-trip count per each latency bin) " +
+ "[binLatency=" + binLatencyMcs + "mcs]")
+ .append(U.nl());
+
+ for (Entry<UUID, long[]> e : res.entrySet()) {
+ ClusterNode node = ctx.discovery().node(e.getKey());
+
+ b.append("Node ID: ").append(e.getKey()).append(" (addrs=")
+ .append(node != null ? node.addresses().toString() : "n/a").append(')').append(U.nl());
+
+ b.append("Latency bin, mcs | Count exclusive | Percentage exclusive | " +
+ "Count inclusive | Percentage inclusive ").append(U.nl());
+
+ long[] nodeRes = e.getValue();
+
+ long sum = 0;
+
+ for (int i = 0; i < nodeRes.length; i++)
+ sum += nodeRes[i];
+
+ long curSum = 0;
+
+ for (int i = 0; i < nodeRes.length; i++) {
+ curSum += nodeRes[i];
+
+ if (i < nodeRes.length - 1)
+ b.append(String.format("<%11d mcs | %15d | %19.6f%% | %15d | %19.6f%%\n",
+ (i + 1) * binLatencyMcs,
+ nodeRes[i], (100.0 * nodeRes[i]) / sum,
+ curSum, (100.0 * curSum) / sum));
+ else
+ b.append(String.format(">%11d mcs | %15d | %19.6f%% | %15d | %19.6f%%\n",
+ i * binLatencyMcs,
+ nodeRes[i], (100.0 * nodeRes[i]) / sum,
+ curSum, (100.0 * curSum) / sum));
+ }
+ }
+
+ if (log.isInfoEnabled())
+ log.info(b.toString());
+ }
+
/** {@inheritDoc} */
@SuppressWarnings({"deprecation", "SynchronizationOnLocalVariableOrMethodParameter"})
@Override public void onKernalStart0() throws IgniteCheckedException {
[15/15] ignite git commit: ignite-5075
Posted by sb...@apache.org.
ignite-5075
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f974c53b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f974c53b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f974c53b
Branch: refs/heads/ignite-5075
Commit: f974c53b9e73881037eea7213102685493c27bc1
Parents: cd27689
Author: sboikov <sb...@gridgain.com>
Authored: Thu May 18 01:23:41 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu May 18 01:23:41 2017 +0300
----------------------------------------------------------------------
.../cache/CacheAffinitySharedManager.java | 69 ++++++++++++--------
.../processors/cache/CacheGroupDescriptor.java | 4 +-
.../cache/CacheGroupInfrastructure.java | 10 ---
.../processors/cache/ClusterCachesInfo.java | 5 +-
.../processors/cache/GridCacheAttributes.java | 4 ++
.../processors/cache/GridCacheIoManager.java | 17 +++--
.../GridCachePartitionExchangeManager.java | 15 +++--
.../distributed/dht/GridDhtLocalPartition.java | 2 +-
.../dht/GridDhtPartitionTopology.java | 2 -
.../dht/GridDhtPartitionTopologyImpl.java | 24 +++----
.../preloader/GridDhtPartitionsFullMessage.java | 2 +
11 files changed, 89 insertions(+), 65 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/f974c53b/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 7db6dc2..c2dbf61 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
@@ -234,9 +234,9 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
boolean rebalanced = true;
if (partWait != null) {
- CacheGroupHolder cache = grpHolders.get(checkGrpId);
+ CacheGroupHolder grpHolder = grpHolders.get(checkGrpId);
- if (cache != null) {
+ if (grpHolder != null) {
for (Iterator<Map.Entry<Integer, UUID>> it = partWait.entrySet().iterator(); it.hasNext(); ) {
Map.Entry<Integer, UUID> e = it.next();
@@ -325,7 +325,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
for (CacheGroupDescriptor stopDesc : exchActions.cacheGroupsToStop()) {
CacheGroupDescriptor rmvd = registeredGrps.remove(stopDesc.groupId());
- assert rmvd != null : stopDesc.groupName();
+ assert rmvd != null : stopDesc.cacheOrGroupName();
}
for (CacheGroupDescriptor startDesc : exchActions.cacheGroupsToStart()) {
@@ -392,14 +392,24 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
}
}
- for (CacheGroupInfrastructure grp : cctx.cache().cacheGroups()) {
- if (grp.affinity().lastVersion().equals(AffinityTopologyVersion.NONE))
- initAffinity(registeredGrps.get(grp.groupId()), grp.affinity(), fut, false);
- }
+ Set<Integer> gprs = new HashSet<>();
- if (crd) {
- for (ExchangeActions.ActionData action : exchActions.newAndClientCachesStartRequests())
- initStartedGroupOnCoordinator(fut, action.descriptor().groupDescriptor());
+ for (ExchangeActions.ActionData action : exchActions.newAndClientCachesStartRequests()) {
+ Integer grpId = action.descriptor().groupDescriptor().groupId();
+
+ if (gprs.add(grpId)) {
+ if (crd && lateAffAssign)
+ initStartedGroupOnCoordinator(fut, action.descriptor().groupDescriptor());
+ else {
+ CacheGroupInfrastructure grp = cctx.cache().cacheGroup(grpId);
+
+ if (grp != null && grp.localStartVersion().equals(fut.topologyVersion())) {
+ assert grp.affinity().lastVersion().equals(AffinityTopologyVersion.NONE) : grp.affinity().lastVersion();
+
+ initAffinity(registeredGrps.get(grp.groupId()), grp.affinity(), fut);
+ }
+ }
+ }
}
List<ExchangeActions.ActionData> closeReqs = exchActions.closeRequests(cctx.localNodeId());
@@ -801,7 +811,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
grpHolder.affinity().initialize(fut.topologyVersion(), newAff);
}
else if (grpHolder.client() && grp != null) {
- assert grp.affinity().idealAssignment() != null;
+ assert grpHolder.affinity().idealAssignment() != null;
grpHolder = new CacheGroupHolder1(grp, grpHolder.affinity());
@@ -845,7 +855,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
forAllCacheGroups(false, new IgniteInClosureX<GridAffinityAssignmentCache>() {
@Override public void applyx(GridAffinityAssignmentCache aff) throws IgniteCheckedException {
if (aff.lastVersion().equals(AffinityTopologyVersion.NONE))
- initAffinity(registeredGrps.get(aff.groupId()), aff, fut, false);
+ initAffinity(registeredGrps.get(aff.groupId()), aff, fut);
}
});
}
@@ -855,17 +865,15 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
* @param desc Cache group descriptor.
* @param aff Affinity.
* @param fut Exchange future.
- * @param fetch Force fetch flag.
* @throws IgniteCheckedException If failed.
*/
private void initAffinity(CacheGroupDescriptor desc,
GridAffinityAssignmentCache aff,
- GridDhtPartitionsExchangeFuture fut,
- boolean fetch)
+ GridDhtPartitionsExchangeFuture fut)
throws IgniteCheckedException {
assert desc != null : aff.cacheOrGroupName();
- if (!fetch && canCalculateAffinity(desc, aff, fut)) {
+ if (canCalculateAffinity(desc, aff, fut)) {
List<List<ClusterNode>> assignment = aff.calculate(fut.topologyVersion(), fut.discoveryEvent(), fut.discoCache());
aff.initialize(fut.topologyVersion(), assignment);
@@ -894,16 +902,15 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
assert desc != null : aff.cacheOrGroupName();
// Do not request affinity from remote nodes if affinity function is not centralized.
- if (!aff.centralizedAffinityFunction())
+ if (!lateAffAssign && !aff.centralizedAffinityFunction())
return true;
// If local node did not initiate exchange or local node is the only cache node in grid.
- Collection<ClusterNode> affNodes =
- cctx.discovery().cacheGroupAffinityNodes(aff.groupId(), fut.topologyVersion());
+ Collection<ClusterNode> affNodes = fut.discoCache().cacheGroupAffinityNodes(aff.groupId());
return fut.cacheGroupAddedOnExchange(aff.groupId(), desc.receivedFrom()) ||
!fut.exchangeId().nodeId().equals(cctx.localNodeId()) ||
- (affNodes.size() == 1 && affNodes.contains(cctx.localNode()));
+ (affNodes.isEmpty() || (affNodes.size() == 1 && affNodes.contains(cctx.localNode())));
}
/**
@@ -970,7 +977,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
StringBuilder names = new StringBuilder();
for (Integer grpId : grpIds) {
- String name = registeredGrps.get(grpId).groupName();
+ String name = registeredGrps.get(grpId).cacheOrGroupName();
if (names.length() != 0)
names.append(", ");
@@ -1004,7 +1011,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
else {
CacheGroupDescriptor grpDesc = registeredGrps.get(grp.groupId());
- assert grpDesc != null : grp.nameForLog();
+ assert grpDesc != null : grp.cacheOrGroupName();
GridDhtAssignmentFetchFuture fetchFut = new GridDhtAssignmentFetchFuture(cctx,
grpDesc,
@@ -1116,7 +1123,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
if (grp.isLocal())
continue;
- initAffinity(registeredGrps.get(grp.groupId()), grp.affinity(), fut, false);
+ initAffinity(registeredGrps.get(grp.groupId()), grp.affinity(), fut);
}
}
@@ -1127,6 +1134,8 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
*/
private IgniteInternalFuture<?> initCoordinatorCaches(final GridDhtPartitionsExchangeFuture fut)
throws IgniteCheckedException {
+ assert lateAffAssign;
+
final List<IgniteInternalFuture<AffinityTopologyVersion>> futs = new ArrayList<>();
forAllRegisteredCacheGroups(new IgniteInClosureX<CacheGroupDescriptor>() {
@@ -1169,7 +1178,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
if (log.isDebugEnabled()) {
log.debug("Need initialize affinity on coordinator [" +
- "cacheGrp=" + desc.groupName() +
+ "cacheGrp=" + desc.cacheOrGroupName() +
"prevAff=" + prev.topologyVersion() + ']');
}
@@ -1266,6 +1275,8 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
*/
@Nullable private WaitRebalanceInfo initAffinityOnNodeJoin(final GridDhtPartitionsExchangeFuture fut, boolean crd)
throws IgniteCheckedException {
+ assert lateAffAssign;
+
AffinityTopologyVersion topVer = fut.topologyVersion();
final Map<Object, List<List<ClusterNode>>> affCache = new HashMap<>();
@@ -1320,7 +1331,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
AffinityTopologyVersion affTopVer = aff.lastVersion();
- assert affTopVer.topologyVersion() > 0 : "Affinity is not initialized [grp=" + aff.groupId() +
+ assert affTopVer.topologyVersion() > 0 : "Affinity is not initialized [grp=" + aff.cacheOrGroupName() +
", topVer=" + affTopVer + ", node=" + cctx.localNodeId() + ']';
List<List<ClusterNode>> curAff = aff.assignments(affTopVer);
@@ -1454,6 +1465,8 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
*/
private Map<Integer, Map<Integer, List<UUID>>> initAffinityOnNodeLeft0(final GridDhtPartitionsExchangeFuture fut)
throws IgniteCheckedException {
+ assert lateAffAssign;
+
final AffinityTopologyVersion topVer = fut.topologyVersion();
final WaitRebalanceInfo waitRebalanceInfo = new WaitRebalanceInfo(topVer);
@@ -1472,7 +1485,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
AffinityTopologyVersion affTopVer = grpHolder.affinity().lastVersion();
assert affTopVer.topologyVersion() > 0 && !affTopVer.equals(topVer) : "Invalid affinity version " +
- "[last=" + affTopVer + ", futVer=" + topVer + ", grp=" + desc.groupName() + ']';
+ "[last=" + affTopVer + ", futVer=" + topVer + ", grp=" + desc.cacheOrGroupName() + ']';
List<List<ClusterNode>> curAssignment = grpHolder.affinity().assignments(affTopVer);
List<List<ClusterNode>> newAssignment = grpHolder.affinity().idealAssignment();
@@ -1493,7 +1506,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
List<ClusterNode> newNodes0 = null;
assert newPrimary == null || aliveNodes.contains(newPrimary) : "Invalid new primary [" +
- "grp=" + desc.groupName() +
+ "grp=" + desc.cacheOrGroupName() +
", node=" + newPrimary +
", topVer=" + topVer + ']';
@@ -1568,7 +1581,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
if (log.isDebugEnabled()) {
log.debug("Computed new affinity after node left [topVer=" + topVer +
- ", waitCaches=" + (info != null ? groupNames(info.waitGrps.keySet()) : null) + ']');
+ ", waitGrps=" + (info != null ? groupNames(info.waitGrps.keySet()) : null) + ']');
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/f974c53b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupDescriptor.java
index af92f91..eb82992 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupDescriptor.java
@@ -22,6 +22,7 @@ import java.util.Map;
import java.util.UUID;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.lang.IgniteUuid;
@@ -41,6 +42,7 @@ public class CacheGroupDescriptor {
private final IgniteUuid deploymentId;
/** */
+ @GridToStringExclude
private final CacheConfiguration cacheCfg;
/** */
@@ -166,6 +168,6 @@ public class CacheGroupDescriptor {
}
@Override public String toString() {
- return S.toString(CacheGroupDescriptor.class, this);
+ return S.toString(CacheGroupDescriptor.class, this, "cacheName", cacheCfg.getName());
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/f974c53b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java
index 800fdb2..e112bbc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java
@@ -492,16 +492,6 @@ public class CacheGroupInfrastructure {
}
/**
- * @return Group name.
- */
- public String nameForLog() {
- if (ccfg.getGroupName() == null)
- return "[cache, name=" + ccfg.getName() + ']';
-
- return "[cacheGroup, name=" + ccfg.getGroupName() + ']';
- }
-
- /**
* @return Group name if it is specified, otherwise cache name.
*/
public String cacheOrGroupName() {
http://git-wip-us.apache.org/repos/asf/ignite/blob/f974c53b/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 4938382..b5dbc95 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
@@ -498,7 +498,7 @@ class ClusterCachesInfo {
for (CacheGroupInfrastructure grp : ctx.cache().cacheGroups()) {
CacheGroupDescriptor desc = grps.get(grp.groupId());
- assert desc != null : grp.nameForLog();
+ assert desc != null : grp.cacheOrGroupName();
cacheGrpsInfo.put(grp.groupId(), new CacheClientReconnectDiscoveryData.CacheGroupInfo(desc.config(),
desc.deploymentId(),
@@ -1068,6 +1068,9 @@ class ClusterCachesInfo {
CU.validateCacheGroupsAttributesMismatch(log, cfg, startCfg, "rebalanceOrder", "Rebalance order",
cfg.getRebalanceOrder(), startCfg.getRebalanceOrder(), false);
+
+ CU.validateCacheGroupsAttributesMismatch(log, cfg, startCfg, "partitionLossPolicy", "Partition Loss Policy",
+ cfg.getPartitionLossPolicy(), startCfg.getPartitionLossPolicy(), true);
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/f974c53b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java
index 96d5a0a..ca640f2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAttributes.java
@@ -279,6 +279,10 @@ public class GridCacheAttributes implements Serializable {
return className(ccfg.getNodeFilter());
}
+ String topologyValidatorClassName() {
+ return className(ccfg.getTopologyValidator());
+ }
+
/**
* @param obj Object to get class of.
* @return Class name or {@code null}.
http://git-wip-us.apache.org/repos/asf/ignite/blob/f974c53b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
index c4462c9..f63f18c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
@@ -162,7 +162,7 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
log.debug("Wait for exchange before processing message [msg=" + msg +
", node=" + nodeId +
", waitVer=" + startTopVer +
- ", cacheDesc=" + cacheDescriptor(cacheMsg) + ']');
+ ", cacheDesc=" + descriptorForMessage(cacheMsg) + ']');
}
fut.listen(new CI1<IgniteInternalFuture<?>>() {
@@ -251,8 +251,17 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
}
};
- private DynamicCacheDescriptor cacheDescriptor(GridCacheMessage msg) {
- return null; // TODO IGNITE-5075.
+ /**
+ * @param msg Message.
+ * @return Cache or group descriptor.
+ */
+ private Object descriptorForMessage(GridCacheMessage msg) {
+ if (msg instanceof GridCacheIdMessage)
+ return cctx.cache().cacheDescriptor(((GridCacheIdMessage)msg).cacheId());
+ else if (msg instanceof GridCacheGroupIdMessage)
+ return cctx.cache().cacheGroupDescriptors().get(((GridCacheGroupIdMessage)msg).groupId());
+
+ return null;
}
/**
@@ -296,7 +305,7 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
msg0.append(", locTopVer=").append(cctx.exchange().readyAffinityVersion()).
append(", msgTopVer=").append(cacheMsg.topologyVersion()).
- append(", cacheDesc=").append(cacheDescriptor(cacheMsg)).
+ append(", desc=").append(descriptorForMessage(cacheMsg)).
append(']');
msg0.append(U.nl()).append("Registered listeners:");
http://git-wip-us.apache.org/repos/asf/ignite/blob/f974c53b/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 c651a65..7351d26 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
@@ -919,12 +919,14 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
for (GridClientPartitionTopology top : cctx.exchange().clientTopologies()) {
GridDhtPartitionFullMap map = top.partitionMap(true);
- addFullPartitionsMap(m,
- dupData,
- compress,
- top.groupId(),
- map,
- top.similarAffinityKey());
+ if (map != null) {
+ addFullPartitionsMap(m,
+ dupData,
+ compress,
+ top.groupId(),
+ map,
+ top.similarAffinityKey());
+ }
if (exchId != null)
m.addPartitionUpdateCounters(top.groupId(), top.updateCounters(true));
@@ -947,6 +949,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
Integer grpId,
GridDhtPartitionFullMap map,
Object affKey) {
+ assert map != null;
Integer dupDataCache = null;
if (compress && affKey != null && !m.containsGroup(grpId)) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/f974c53b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
index 5cb48ad..20dbdc8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
@@ -1152,7 +1152,7 @@ public class GridDhtLocalPartition extends GridCacheConcurrentMapImpl implements
* @param cacheId Cache ID.
*/
void onCacheStopped(int cacheId) {
- assert grp.sharedGroup() : grp.nameForLog();
+ assert grp.sharedGroup() : grp.cacheOrGroupName();
for (Iterator<RemovedEntryHolder> it = rmvQueue.iterator(); it.hasNext();) {
RemovedEntryHolder e = it.next();
http://git-wip-us.apache.org/repos/asf/ignite/blob/f974c53b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
index 9617a0d..1e38cec 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java
@@ -134,8 +134,6 @@ public interface GridDhtPartitionTopology {
public void releasePartitions(int... parts);
/**
- * @param key Cache key.
- * @param create If {@code true}, then partition will be created if it's not there.
* @return Local partition.
* @throws GridDhtInvalidPartitionException If partition is evicted or absent and
* does not belong to this node.
http://git-wip-us.apache.org/repos/asf/ignite/blob/f974c53b/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 64c208b..a47d854 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
@@ -243,7 +243,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
if (dumpCnt++ < GridDhtPartitionsExchangeFuture.DUMP_PENDING_OBJECTS_THRESHOLD) {
U.warn(log, "Failed to wait for partition eviction [" +
"topVer=" + topVer +
- ", group=" + grp.nameForLog() +
+ ", group=" + grp.cacheOrGroupName() +
", part=" + part.id() +
", partState=" + part.state() +
", size=" + part.internalSize() +
@@ -337,7 +337,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
AffinityTopologyVersion topVer = this.topVer;
assert topVer.topologyVersion() > 0 : "Invalid topology version [topVer=" + topVer +
- ", group=" + grp.nameForLog() + ']';
+ ", group=" + grp.cacheOrGroupName() + ']';
return topVer;
}
@@ -387,12 +387,12 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
assert topVer.equals(exchFut.topologyVersion()) :
"Invalid topology [topVer=" + topVer +
- ", grp=" + grp.nameForLog() +
+ ", grp=" + grp.cacheOrGroupName() +
", futVer=" + exchFut.topologyVersion() +
", fut=" + exchFut + ']';
assert grp.affinity().lastVersion().equals(exchFut.topologyVersion()) :
"Invalid affinity [topVer=" + grp.affinity().lastVersion() +
- ", grp=" + grp.nameForLog() +
+ ", grp=" + grp.cacheOrGroupName() +
", futVer=" + exchFut.topologyVersion() +
", fut=" + exchFut + ']';
@@ -414,7 +414,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
boolean owned = locPart.own();
- assert owned : "Failed to own partition for oldest node [grp=" + grp.nameForLog() +
+ assert owned : "Failed to own partition for oldest node [grp=" + grp.cacheOrGroupName() +
", part=" + locPart + ']';
if (log.isDebugEnabled())
@@ -654,7 +654,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
if (F.isEmpty(owners)) {
boolean owned = locPart.own();
- assert owned : "Failed to own partition [grp=" + grp.nameForLog() + ", locPart=" +
+ assert owned : "Failed to own partition [grp=" + grp.cacheOrGroupName() + ", locPart=" +
locPart + ']';
updateSeq = updateLocal(p, locPart.state(), updateSeq);
@@ -961,7 +961,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
assert node2part != null && node2part.valid() : "Invalid node-to-partitions map [topVer1=" + topVer +
", topVer2=" + this.topVer +
", node=" + ctx.igniteInstanceName() +
- ", grp=" + grp.nameForLog() +
+ ", grp=" + grp.cacheOrGroupName() +
", node2part=" + node2part + ']';
List<ClusterNode> nodes = null;
@@ -1016,7 +1016,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
assert node2part != null && node2part.valid() : "Invalid node-to-partitions map [topVer=" + topVer +
", allIds=" + allIds +
", node2part=" + node2part +
- ", grp=" + grp.nameForLog() + ']';
+ ", grp=" + grp.cacheOrGroupName() + ']';
Collection<UUID> nodeIds = part2node.get(p);
@@ -1091,7 +1091,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
return null;
assert node2part.valid() : "Invalid node2part [node2part=" + node2part +
- ", grp=" + grp.nameForLog() +
+ ", grp=" + grp.cacheOrGroupName() +
", stopping=" + stopping +
", locNodeId=" + ctx.localNode().id() +
", locName=" + ctx.igniteInstanceName() + ']';
@@ -1949,7 +1949,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
try {
assert node2part != null && node2part.valid() : "Invalid node2part [node2part: " + node2part +
- ", grp=" + grp.nameForLog() +
+ ", grp=" + grp.cacheOrGroupName() +
", stopping=" + stopping +
", locNodeId=" + ctx.localNodeId() +
", locName=" + ctx.igniteInstanceName() + ']';
@@ -1984,7 +1984,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
/** {@inheritDoc} */
@Override public void printMemoryStats(int threshold) {
X.println(">>> Cache partition topology stats [igniteInstanceName=" + ctx.igniteInstanceName() +
- ", grp=" + grp.nameForLog() + ']');
+ ", grp=" + grp.cacheOrGroupName() + ']');
lock.readLock().lock();
@@ -2039,7 +2039,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
rebalancedTopVer = topVer;
if (log.isDebugEnabled())
- log.debug("Updated rebalanced version [cache=" + grp.nameForLog() + ", ver=" + rebalancedTopVer + ']');
+ log.debug("Updated rebalanced version [cache=" + grp.cacheOrGroupName() + ", ver=" + rebalancedTopVer + ']');
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/f974c53b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java
index 9fc0f12..f9bc5df 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java
@@ -140,6 +140,8 @@ public class GridDhtPartitionsFullMessage extends GridDhtPartitionsAbstractMessa
* @param dupDataCache Optional ID of cache with the same partition state map.
*/
public void addFullPartitionsMap(int grpId, GridDhtPartitionFullMap fullMap, @Nullable Integer dupDataCache) {
+ assert fullMap != null;
+
if (parts == null)
parts = new HashMap<>();
[03/15] ignite git commit: IGNITE-5208: Fixed sigfault on concurrent
map access
Posted by sb...@apache.org.
IGNITE-5208: Fixed sigfault on concurrent map access
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/82144631
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/82144631
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/82144631
Branch: refs/heads/ignite-5075
Commit: 821446317086102ab1f11633864f8d9c08c3bcba
Parents: e1f3e4a
Author: Igor Sapego <is...@gridgain.com>
Authored: Wed May 17 12:38:20 2017 +0300
Committer: Igor Sapego <is...@gridgain.com>
Committed: Wed May 17 12:38:20 2017 +0300
----------------------------------------------------------------------
.../ignite/impl/binary/binary_type_manager.h | 6 +-
.../src/impl/binary/binary_type_manager.cpp | 83 +++++++++-----------
2 files changed, 41 insertions(+), 48 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/82144631/modules/platforms/cpp/binary/include/ignite/impl/binary/binary_type_manager.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/binary/include/ignite/impl/binary/binary_type_manager.h b/modules/platforms/cpp/binary/include/ignite/impl/binary/binary_type_manager.h
index 01538b8..dc147fa 100644
--- a/modules/platforms/cpp/binary/include/ignite/impl/binary/binary_type_manager.h
+++ b/modules/platforms/cpp/binary/include/ignite/impl/binary/binary_type_manager.h
@@ -52,7 +52,7 @@ namespace ignite
* @param typeName Type name.
* @param typeId Type ID.
*/
- ignite::common::concurrent::SharedPointer<BinaryTypeHandler> GetHandler(const std::string& typeName, int32_t typeId);
+ common::concurrent::SharedPointer<BinaryTypeHandler> GetHandler(const std::string& typeName, int32_t typeId);
/**
* Submit handler for processing.
@@ -104,13 +104,13 @@ namespace ignite
private:
/** Current snapshots. */
- ignite::common::concurrent::SharedPointer<std::map<int32_t, SPSnap> > snapshots;
+ std::map<int32_t, SPSnap>* snapshots;
/** Pending snapshots. */
std::vector<SPSnap>* pending;
/** Critical section. */
- ignite::common::concurrent::CriticalSection cs;
+ common::concurrent::CriticalSection cs;
/** Type updater */
BinaryTypeUpdater* updater;
http://git-wip-us.apache.org/repos/asf/ignite/blob/82144631/modules/platforms/cpp/binary/src/impl/binary/binary_type_manager.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/binary/src/impl/binary/binary_type_manager.cpp b/modules/platforms/cpp/binary/src/impl/binary/binary_type_manager.cpp
index 4a8c14c..98d4602 100644
--- a/modules/platforms/cpp/binary/src/impl/binary/binary_type_manager.cpp
+++ b/modules/platforms/cpp/binary/src/impl/binary/binary_type_manager.cpp
@@ -41,20 +41,17 @@ namespace ignite
BinaryTypeManager::~BinaryTypeManager()
{
- pending->erase(pending->begin(), pending->end());
-
+ delete snapshots;
delete pending;
}
SharedPointer<BinaryTypeHandler> BinaryTypeManager::GetHandler(const std::string& typeName, int32_t typeId)
{
- std::map<int32_t, SPSnap>& snapshots0 = *snapshots.Get();
-
{ // Locking scope.
CsLockGuard guard(cs);
- std::map<int32_t, SPSnap>::iterator it = snapshots0.find(typeId);
- if (it != snapshots0.end())
+ std::map<int32_t, SPSnap>::iterator it = snapshots->find(typeId);
+ if (it != snapshots->end())
return SharedPointer<BinaryTypeHandler>(new BinaryTypeHandler(it->second));
}
@@ -65,7 +62,7 @@ namespace ignite
void BinaryTypeManager::SubmitHandler(BinaryTypeHandler& hnd)
{
- // If this is the very first write of a class or difference exists,
+ // If this is the very first write of a class or difference exists,
// we need to enqueue it for write.
if (hnd.HasUpdate())
{
@@ -102,45 +99,30 @@ namespace ignite
{
Snap* pendingSnap = it->Get();
+ if (!pendingSnap)
+ continue; // Snapshot has been processed already.
+
if (!updater->Update(*pendingSnap, err))
return false; // Stop as we cannot move further.
- // Perform copy-on-write update of snapshot collection.
- SharedPointer< std::map<int32_t, SPSnap> > newSnapshots(new std::map<int32_t, SPSnap>());
- std::map<int32_t, SPSnap>& newSnapshots0 = *newSnapshots.Get();
+ std::map<int32_t, SPSnap>::iterator elem = snapshots->lower_bound(pendingSnap->GetTypeId());
- bool snapshotFound = false;
-
- for (std::map<int32_t, SPSnap>::iterator snapIt = snapshots.Get()->begin();
- snapIt != snapshots.Get()->end(); ++snapIt)
+ if (elem == snapshots->end() || elem->first != pendingSnap->GetTypeId())
+ snapshots->insert(elem, std::make_pair(pendingSnap->GetTypeId(), *it));
+ else
{
- int32_t curTypeId = snapIt->first;
- Snap* curSnap = snapIt->second.Get();
-
- if (pendingSnap->GetTypeId() != curTypeId)
- {
- // Just transfer exising snapshot.
- newSnapshots0[curTypeId] = snapIt->second;
+ // Temporary snapshot.
+ SPSnap tmp;
- continue;
- }
+ // Move all values from pending update.
+ tmp.Swap(*it);
- // Create new snapshot.
- SPSnap newSnap(new Snap(*pendingSnap));
+ // Add old fields. Only non-existing values added.
+ tmp.Get()->CopyFieldsFrom(elem->second.Get());
- // Add old fields.
- newSnap.Get()->CopyFieldsFrom(curSnap);
-
- newSnapshots0[curTypeId].Swap(newSnap);
-
- snapshotFound = true;
+ // Move to snapshots storage.
+ tmp.Swap(elem->second);
}
-
- // Handle situation when completely new snapshot is found.
- if (!snapshotFound)
- newSnapshots0[pendingSnap->GetTypeId()] = *it;
-
- snapshots.Swap(newSnapshots);
}
pending->clear();
@@ -152,17 +134,21 @@ namespace ignite
SPSnap BinaryTypeManager::GetMeta(int32_t typeId)
{
- std::map<int32_t, SPSnap>::iterator it = snapshots.Get()->find(typeId);
+ { // Locking scope.
+ CsLockGuard guard(cs);
- if (it != snapshots.Get()->end() && it->second.Get())
- return it->second;
+ std::map<int32_t, SPSnap>::iterator it = snapshots->find(typeId);
- for (int32_t i = 0; i < pending->size(); ++i)
- {
- SPSnap& snap = (*pending)[i];
+ if (it != snapshots->end() && it->second.Get())
+ return it->second;
- if (snap.Get()->GetTypeId() == typeId)
- return snap;
+ for (int32_t i = 0; i < pending->size(); ++i)
+ {
+ SPSnap& snap = (*pending)[i];
+
+ if (snap.Get()->GetTypeId() == typeId)
+ return snap;
+ }
}
IgniteError err;
@@ -171,6 +157,13 @@ namespace ignite
IgniteError::ThrowIfNeeded(err);
+ // Caching meta snapshot for faster access in future.
+ { // Locking scope.
+ CsLockGuard guard(cs);
+
+ snapshots->insert(std::make_pair(typeId, snap));
+ }
+
return snap;
}
}
[09/15] ignite git commit: Merge remote-tracking branch
'remotes/origin/master' into ignite-5075-cacheStart
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/master' into ignite-5075-cacheStart
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/11fc7ca8
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/11fc7ca8
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/11fc7ca8
Branch: refs/heads/ignite-5075
Commit: 11fc7ca85e5f37ef0d57e08cd8c18951929e7574
Parents: ace34f2 a0fc6ee
Author: sboikov <sb...@gridgain.com>
Authored: Wed May 17 18:19:26 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed May 17 18:19:26 2017 +0300
----------------------------------------------------------------------
assembly/LICENSE_FABRIC | 2 +-
assembly/LICENSE_HADOOP | 2 +-
.../managers/communication/GridIoManager.java | 68 ++++++++++++----
.../processors/hadoop/HadoopClasspathUtils.java | 3 +-
modules/hadoop/pom.xml | 2 +-
.../ignite/impl/binary/binary_type_manager.h | 6 +-
.../src/impl/binary/binary_type_manager.cpp | 83 +++++++++-----------
.../cpp/core-test/src/cache_query_test.cpp | 22 ++++++
.../core/include/ignite/cache/query/query_sql.h | 8 ++
.../ignite/cache/query/query_sql_fields.h | 10 ++-
.../query-example/src/query_example.cpp | 6 +-
.../Cache/MemoryMetricsTest.cs | 14 ++--
.../frontend/gulpfile.babel.js/tasks/bundle.js | 2 +-
.../webpack/environments/development.js | 5 +-
14 files changed, 149 insertions(+), 84 deletions(-)
----------------------------------------------------------------------
[11/15] ignite git commit: ignite-5075
Posted by sb...@apache.org.
ignite-5075
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d20b76c4
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d20b76c4
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d20b76c4
Branch: refs/heads/ignite-5075
Commit: d20b76c43d242bb9270e606688bc3adba5e61075
Parents: 194446d
Author: sboikov <sb...@gridgain.com>
Authored: Wed May 17 21:55:17 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed May 17 21:55:17 2017 +0300
----------------------------------------------------------------------
.../continuous/CacheContinuousQueryHandler.java | 37 +++++++++++---------
1 file changed, 21 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/d20b76c4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
index efb02c6..2802217 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
@@ -567,10 +567,12 @@ public class CacheContinuousQueryHandler<K, V> implements GridContinuousHandler
GridCacheContext<K, V> cctx = cacheContext(ctx);
if (!cctx.isLocal()) {
- cacheContext(ctx).affinity().affinityReadyFuture(initTopVer).get();
+ AffinityTopologyVersion topVer = initTopVer;
+
+ cacheContext(ctx).affinity().affinityReadyFuture(topVer).get();
for (int partId = 0; partId < cacheContext(ctx).affinity().partitions(); partId++)
- getOrCreatePartitionRecovery(ctx, partId);
+ getOrCreatePartitionRecovery(ctx, partId, topVer);
}
}
@@ -736,7 +738,7 @@ public class CacheContinuousQueryHandler<K, V> implements GridContinuousHandler
Collections.<CacheEntryEvent<? extends K, ? extends V>>emptyList();
}
- PartitionRecovery rec = getOrCreatePartitionRecovery(ctx, e.partition());
+ PartitionRecovery rec = getOrCreatePartitionRecovery(ctx, e.partition(), e.topologyVersion());
return rec.collectEntries(e, cctx, cache);
}
@@ -869,37 +871,40 @@ public class CacheContinuousQueryHandler<K, V> implements GridContinuousHandler
/**
* @param ctx Context.
* @param partId Partition id.
+ * @param topVer Topology version for current operation.
* @return Partition recovery.
*/
- @NotNull private PartitionRecovery getOrCreatePartitionRecovery(GridKernalContext ctx, int partId) {
+ @NotNull private PartitionRecovery getOrCreatePartitionRecovery(GridKernalContext ctx,
+ int partId,
+ AffinityTopologyVersion topVer) {
+ assert topVer != null && topVer.topologyVersion() > 0 : topVer;
+
PartitionRecovery rec = rcvs.get(partId);
if (rec == null) {
T2<Long, Long> partCntrs = null;
- AffinityTopologyVersion initTopVer0 = initTopVer;
+ Map<UUID, Map<Integer, T2<Long, Long>>> initUpdCntrsPerNode = this.initUpdCntrsPerNode;
- if (initTopVer0 != null) {
+ if (initUpdCntrsPerNode != null) {
GridCacheContext<K, V> cctx = cacheContext(ctx);
GridCacheAffinityManager aff = cctx.affinity();
- if (initUpdCntrsPerNode != null) {
- for (ClusterNode node : aff.nodesByPartition(partId, initTopVer)) {
- Map<Integer, T2<Long, Long>> map = initUpdCntrsPerNode.get(node.id());
+ for (ClusterNode node : aff.nodesByPartition(partId, topVer)) {
+ Map<Integer, T2<Long, Long>> map = initUpdCntrsPerNode.get(node.id());
- if (map != null) {
- partCntrs = map.get(partId);
+ if (map != null) {
+ partCntrs = map.get(partId);
- break;
- }
+ break;
}
}
- else if (initUpdCntrs != null)
- partCntrs = initUpdCntrs.get(partId);
}
+ else if (initUpdCntrs != null)
+ partCntrs = initUpdCntrs.get(partId);
- rec = new PartitionRecovery(ctx.log(CU.CONTINUOUS_QRY_LOG_CATEGORY), initTopVer0,
+ rec = new PartitionRecovery(ctx.log(CU.CONTINUOUS_QRY_LOG_CATEGORY), topVer,
partCntrs != null ? partCntrs.get2() : null);
PartitionRecovery oldRec = rcvs.putIfAbsent(partId, rec);
[02/15] ignite git commit: IGNITE-5131: Hadoop: updated org.ow2.asm
version from 4.2 to 5.0.3. This closes #1946.
Posted by sb...@apache.org.
IGNITE-5131: Hadoop: updated org.ow2.asm version from 4.2 to 5.0.3. This closes #1946.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e1f3e4a6
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e1f3e4a6
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e1f3e4a6
Branch: refs/heads/ignite-5075
Commit: e1f3e4a679ac3a2230085bb244b6c153b40b5eb7
Parents: c4b7f40
Author: Ivan Veselovskiy <iv...@gridgain.com>
Authored: Wed May 17 12:06:16 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Wed May 17 12:06:16 2017 +0300
----------------------------------------------------------------------
assembly/LICENSE_FABRIC | 2 +-
assembly/LICENSE_HADOOP | 2 +-
modules/hadoop/pom.xml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e1f3e4a6/assembly/LICENSE_FABRIC
----------------------------------------------------------------------
diff --git a/assembly/LICENSE_FABRIC b/assembly/LICENSE_FABRIC
index 35a8529..a16381e 100644
--- a/assembly/LICENSE_FABRIC
+++ b/assembly/LICENSE_FABRIC
@@ -285,7 +285,7 @@ This product bundles Java Transaction API which is available under it's own lice
See http://download.oracle.com/otndocs/jcp/jta-1.1-classes-oth-JSpec/jta-1.1-classes-oth-JSpec-license.html for details.
==============================================================================
-For ASM All (http://asm.objectweb.org/asm-all/) org.ow2.asm:asm-all:jar:4.2
+For ASM All (http://asm.objectweb.org/asm-all/) org.ow2.asm:asm-all:jar:5.0.3
==============================================================================
This product bundles ASM All which is available under the following:
BSD. For details, see http://asm.objectweb.org/license.html.
http://git-wip-us.apache.org/repos/asf/ignite/blob/e1f3e4a6/assembly/LICENSE_HADOOP
----------------------------------------------------------------------
diff --git a/assembly/LICENSE_HADOOP b/assembly/LICENSE_HADOOP
index f2128fe..3db2360 100644
--- a/assembly/LICENSE_HADOOP
+++ b/assembly/LICENSE_HADOOP
@@ -249,7 +249,7 @@ This product bundles Scala Library which is available under the following:
BSD 3-Clause. For details, see http://www.scala-lang.org/license.html.
==============================================================================
-For ASM All (http://asm.objectweb.org/asm-all/) org.ow2.asm:asm-all:jar:4.2
+For ASM All (http://asm.objectweb.org/asm-all/) org.ow2.asm:asm-all:jar:5.0.3
==============================================================================
This product bundles ASM All which is available under the following:
BSD. For details, see http://asm.objectweb.org/license.html.
http://git-wip-us.apache.org/repos/asf/ignite/blob/e1f3e4a6/modules/hadoop/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hadoop/pom.xml b/modules/hadoop/pom.xml
index e7f71ec..b6d4b10 100644
--- a/modules/hadoop/pom.xml
+++ b/modules/hadoop/pom.xml
@@ -57,7 +57,7 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-all</artifactId>
- <version>4.2</version>
+ <version>5.0.3</version>
</dependency>
<dependency>
[12/15] ignite git commit: ignite-5075
Posted by sb...@apache.org.
ignite-5075
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9c7f9f25
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9c7f9f25
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9c7f9f25
Branch: refs/heads/ignite-5075
Commit: 9c7f9f25a3c0bb6fd0efa7d5e0c1aa177eefa71d
Parents: 88b0944
Author: sboikov <sb...@gridgain.com>
Authored: Wed May 17 23:03:40 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed May 17 23:03:40 2017 +0300
----------------------------------------------------------------------
.../affinity/GridAffinityAssignmentCache.java | 18 +++++++++---------
.../cache/CacheAffinitySharedManager.java | 8 ++++----
.../processors/cache/CacheGroupDescriptor.java | 4 ++++
.../cache/CacheGroupInfrastructure.java | 2 +-
4 files changed, 18 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/9c7f9f25/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java
index 2adab4d..48d7a44 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java
@@ -61,7 +61,7 @@ public class GridAffinityAssignmentCache {
private final int MAX_HIST_SIZE = getInteger(IGNITE_AFFINITY_HISTORY_SIZE, 500);
/** Group name. */
- private final String grpName;
+ private final String cacheOrGrpName;
/** Group ID. */
private final int grpId;
@@ -115,7 +115,7 @@ public class GridAffinityAssignmentCache {
* Constructs affinity cached calculations.
*
* @param ctx Kernal context.
- * @param grpName Cache group name.
+ * @param cacheOrGrpName Cache or cache group name.
* @param grpId Group ID.
* @param aff Affinity function.
* @param nodeFilter Node filter.
@@ -124,7 +124,7 @@ public class GridAffinityAssignmentCache {
*/
@SuppressWarnings("unchecked")
public GridAffinityAssignmentCache(GridKernalContext ctx,
- String grpName,
+ String cacheOrGrpName,
int grpId,
AffinityFunction aff,
IgnitePredicate<ClusterNode> nodeFilter,
@@ -139,7 +139,7 @@ public class GridAffinityAssignmentCache {
this.ctx = ctx;
this.aff = aff;
this.nodeFilter = nodeFilter;
- this.grpName = grpName;
+ this.cacheOrGrpName = cacheOrGrpName;
this.grpId = grpId;
this.backups = backups;
this.locCache = locCache;
@@ -163,10 +163,10 @@ public class GridAffinityAssignmentCache {
}
/**
- * @return Cache group name.
+ * @return Group name if it is specified, otherwise cache name.
*/
- public String groupName() {
- return grpName;
+ public String cacheOrGroupName() {
+ return cacheOrGrpName;
}
/**
@@ -434,7 +434,7 @@ public class GridAffinityAssignmentCache {
*/
public void dumpDebugInfo() {
if (!readyFuts.isEmpty()) {
- U.warn(log, "Pending affinity ready futures [grp=" + grpName + ", lastVer=" + lastVersion() + "]:");
+ U.warn(log, "Pending affinity ready futures [grp=" + cacheOrGrpName + ", lastVer=" + lastVersion() + "]:");
for (AffinityReadyFuture fut : readyFuts.values())
U.warn(log, ">>> " + fut);
@@ -463,7 +463,7 @@ public class GridAffinityAssignmentCache {
if (cache == null) {
throw new IllegalStateException("Getting affinity for topology version earlier than affinity is " +
"calculated [locNode=" + ctx.discovery().localNode() +
- ", group=" + grpName +
+ ", group=" + cacheOrGrpName +
", topVer=" + topVer +
", head=" + head.get().topologyVersion() +
", history=" + affCache.keySet() +
http://git-wip-us.apache.org/repos/asf/ignite/blob/9c7f9f25/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 55f56e75..37c17df 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
@@ -613,7 +613,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
CacheGroupDescriptor desc = registeredGrps.get(aff.groupId());
- assert desc != null : aff.groupName();
+ assert desc != null : aff.cacheOrGroupName();
IgniteUuid deploymentId = desc.deploymentId();
@@ -638,7 +638,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
List<ClusterNode> nodes = toNodes(topVer, e.getValue());
assert !nodes.equals(assignment.get(part)) : "Assignment did not change " +
- "[cacheGrp=" + aff.groupName() +
+ "[cacheGrp=" + aff.cacheOrGroupName() +
", part=" + part +
", cur=" + F.nodeIds(assignment.get(part)) +
", new=" + F.nodeIds(nodes) +
@@ -897,7 +897,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
CacheGroupDescriptor grpDesc = registeredGrps.get(aff.groupId());
- assert grpDesc != null : aff.groupName();
+ assert grpDesc != null : aff.cacheOrGroupName();
return fut.cacheGroupAddedOnExchange(aff.groupId(), grpDesc.receivedFrom()) ||
!fut.exchangeId().nodeId().equals(cctx.localNodeId()) ||
@@ -1749,7 +1749,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
U.startLifecycleAware(F.asList(affFunc));
GridAffinityAssignmentCache aff = new GridAffinityAssignmentCache(cctx.kernalContext(),
- grpDesc.groupName(),
+ grpDesc.cacheOrGroupName(),
grpDesc.groupId(),
affFunc,
ccfg.getNodeFilter(),
http://git-wip-us.apache.org/repos/asf/ignite/blob/9c7f9f25/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupDescriptor.java
index 9ac9584..af92f91 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupDescriptor.java
@@ -124,6 +124,10 @@ public class CacheGroupDescriptor {
return grpName != null;
}
+ public String cacheOrGroupName() {
+ return grpName != null ? grpName : cacheCfg.getName();
+ }
+
public String groupName() {
return grpName;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/9c7f9f25/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java
index addcfcc..800fdb2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupInfrastructure.java
@@ -597,7 +597,7 @@ public class CacheGroupInfrastructure {
*/
public void start() throws IgniteCheckedException {
aff = new GridAffinityAssignmentCache(ctx.kernalContext(),
- name(),
+ cacheOrGroupName(),
grpId,
ccfg.getAffinity(),
ccfg.getNodeFilter(),
[14/15] ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-5075-cacheStart' into ignite-5075
Posted by sb...@apache.org.
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/CacheClientReconnectDiscoveryData.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/ExchangeActions.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/cd27689e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/cd27689e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/cd27689e
Branch: refs/heads/ignite-5075
Commit: cd27689e657f60fee1a5eb2e8edd3955f58e730b
Parents: a7bc895
Author: sboikov <sb...@gridgain.com>
Authored: Wed May 17 23:12:47 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed May 17 23:12:47 2017 +0300
----------------------------------------------------------------------
.../processors/cache/CacheAffinitySharedManager.java | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/cd27689e/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 49b765f..7db6dc2 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
@@ -852,18 +852,18 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
}
/**
- * @param grpDesc Cache group descriptor.
+ * @param desc Cache group descriptor.
* @param aff Affinity.
* @param fut Exchange future.
* @param fetch Force fetch flag.
* @throws IgniteCheckedException If failed.
*/
- private void initAffinity(CacheGroupDescriptor grpDesc,
+ private void initAffinity(CacheGroupDescriptor desc,
GridAffinityAssignmentCache aff,
GridDhtPartitionsExchangeFuture fut,
boolean fetch)
throws IgniteCheckedException {
- assert desc != null;
+ assert desc != null : aff.cacheOrGroupName();
if (!fetch && canCalculateAffinity(desc, aff, fut)) {
List<List<ClusterNode>> assignment = aff.calculate(fut.topologyVersion(), fut.discoveryEvent(), fut.discoCache());
@@ -872,7 +872,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
}
else {
GridDhtAssignmentFetchFuture fetchFut = new GridDhtAssignmentFetchFuture(cctx,
- grpDesc,
+ desc,
fut.topologyVersion(),
fut.discoCache());
[10/15] ignite git commit: ignite-5075
Posted by sb...@apache.org.
ignite-5075
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/194446dd
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/194446dd
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/194446dd
Branch: refs/heads/ignite-5075
Commit: 194446dd87b454eea501c042909b58bc9be2eb72
Parents: 11fc7ca
Author: sboikov <sb...@gridgain.com>
Authored: Wed May 17 19:03:13 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed May 17 19:03:13 2017 +0300
----------------------------------------------------------------------
.../cache/CacheAffinitySharedManager.java | 60 ++++++++++----------
.../CacheClientReconnectDiscoveryData.java | 11 ++--
.../processors/cache/ClusterCachesInfo.java | 37 ++++++------
.../cache/DynamicCacheDescriptor.java | 12 ++--
.../processors/cache/ExchangeActions.java | 25 +++++---
.../processors/cache/GridCacheProcessor.java | 23 ++++----
.../CacheDiscoveryDataConcurrentJoinTest.java | 13 ++---
.../testsuites/IgniteCacheTestSuite4.java | 16 +++++-
8 files changed, 110 insertions(+), 87 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/194446dd/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 cdc83ec..f53ff07 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
@@ -49,7 +49,6 @@ import org.apache.ignite.internal.util.future.GridFinishedFuture;
import org.apache.ignite.internal.util.future.GridFutureAdapter;
import org.apache.ignite.internal.util.lang.IgniteInClosureX;
import org.apache.ignite.internal.util.typedef.F;
-import org.apache.ignite.internal.util.typedef.T2;
import org.apache.ignite.internal.util.typedef.internal.CU;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteBiInClosure;
@@ -323,31 +322,29 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
* @param exchActions Cache change requests to execute on exchange.
*/
private void updateCachesInfo(ExchangeActions exchActions) {
- for (ExchangeActions.ActionData action : exchActions.stopRequests()) {
+ for (ExchangeActions.ActionData action : exchActions.cacheStopRequests()) {
DynamicCacheDescriptor desc = registeredCaches.remove(action.descriptor().cacheId());
assert desc != null : action.request().cacheName();
}
- for (ExchangeActions.ActionData action : exchActions.newAndClientCachesStartRequests()) {
+ for (ExchangeActions.ActionData action : exchActions.cacheStartRequests()) {
DynamicCacheChangeRequest req = action.request();
- if (!req.clientStartOnly()) {
- Integer cacheId = CU.cacheId(req.cacheName());
+ Integer cacheId = action.descriptor().cacheId();
- DynamicCacheDescriptor desc = new DynamicCacheDescriptor(cctx.kernalContext(),
- req.startCacheConfiguration(),
- req.cacheType(),
- false,
- action.descriptor().receivedFrom(),
- action.descriptor().staticallyConfigured(),
- req.deploymentId(),
- req.schema());
+ DynamicCacheDescriptor desc = new DynamicCacheDescriptor(cctx.kernalContext(),
+ req.startCacheConfiguration(),
+ req.cacheType(),
+ false,
+ action.descriptor().receivedFrom(),
+ action.descriptor().staticallyConfigured(),
+ req.deploymentId(),
+ req.schema());
- DynamicCacheDescriptor old = registeredCaches.put(cacheId, desc);
+ DynamicCacheDescriptor old = registeredCaches.put(cacheId, desc);
- assert old == null : old;
- }
+ assert old == null : old;
}
}
@@ -417,6 +414,8 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
if (clientCacheStarted)
initAffinity(cacheDesc, cacheCtx.affinity().affinityCache(), fut, lateAffAssign);
else if (!req.clientStartOnly()) {
+ assert fut.topologyVersion().equals(cacheCtx.startTopologyVersion());
+
GridAffinityAssignmentCache aff = cacheCtx.affinity().affinityCache();
assert aff.lastVersion().equals(AffinityTopologyVersion.NONE) : aff.lastVersion();
@@ -458,7 +457,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
Set<Integer> stoppedCaches = null;
- for (ExchangeActions.ActionData action : exchActions.stopRequests()) {
+ for (ExchangeActions.ActionData action : exchActions.cacheStopRequests()) {
DynamicCacheDescriptor desc = action.descriptor();
cctx.cache().blockGateway(action.request());
@@ -689,7 +688,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
});
}
else
- initCachesAffinity(fut);
+ initAffinityNoLateAssignment(fut);
}
}
@@ -799,7 +798,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
}
/**
- * Initialized affinity started on this exchange.
+ * Initialized affinity for cache received from node joining on this exchange.
*
* @param crd Coordinator flag.
* @param fut Exchange future.
@@ -850,7 +849,9 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
GridDhtPartitionsExchangeFuture fut,
boolean fetch)
throws IgniteCheckedException {
- if (!fetch && canCalculateAffinity(aff, fut)) {
+ assert desc != null;
+
+ if (!fetch && canCalculateAffinity(desc, aff, fut)) {
List<List<ClusterNode>> assignment = aff.calculate(fut.topologyVersion(), fut.discoveryEvent(), fut.discoCache());
aff.initialize(fut.topologyVersion(), assignment);
@@ -868,11 +869,16 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
}
/**
+ * @param desc Cache descriptor.
* @param aff Affinity.
* @param fut Exchange future.
* @return {@code True} if local node can calculate affinity on it's own for this partition map exchange.
*/
- private boolean canCalculateAffinity(GridAffinityAssignmentCache aff, GridDhtPartitionsExchangeFuture fut) {
+ private boolean canCalculateAffinity(DynamicCacheDescriptor desc,
+ GridAffinityAssignmentCache aff,
+ GridDhtPartitionsExchangeFuture fut) {
+ assert desc != null : aff.cacheName();
+
// Do not request affinity from remote nodes if affinity function is not centralized.
if (!aff.centralizedAffinityFunction())
return true;
@@ -880,11 +886,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
// If local node did not initiate exchange or local node is the only cache node in grid.
Collection<ClusterNode> affNodes = cctx.discovery().cacheAffinityNodes(aff.cacheId(), fut.topologyVersion());
- DynamicCacheDescriptor cacheDesc = registeredCaches.get(aff.cacheId());
-
- assert cacheDesc != null : aff.cacheName();
-
- return fut.cacheAddedOnExchange(aff.cacheId(), cacheDesc.receivedFrom()) ||
+ return fut.cacheAddedOnExchange(aff.cacheId(), desc.receivedFrom()) ||
!fut.exchangeId().nodeId().equals(cctx.localNodeId()) ||
(affNodes.size() == 1 && affNodes.contains(cctx.localNode()));
}
@@ -925,7 +927,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
waitRebalanceInfo = initAffinityOnNodeJoin(fut, crd);
}
else
- initCachesAffinity(fut);
+ initAffinityNoLateAssignment(fut);
synchronized (mux) {
affCalcVer = fut.topologyVersion();
@@ -1069,7 +1071,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
centralizedAff = true;
}
else {
- initCachesAffinity(fut);
+ initAffinityNoLateAssignment(fut);
centralizedAff = false;
}
@@ -1087,7 +1089,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
* @param fut Exchange future.
* @throws IgniteCheckedException If failed.
*/
- private void initCachesAffinity(GridDhtPartitionsExchangeFuture fut) throws IgniteCheckedException {
+ private void initAffinityNoLateAssignment(GridDhtPartitionsExchangeFuture fut) throws IgniteCheckedException {
assert !lateAffAssign;
for (GridCacheContext cacheCtx : cctx.cacheContexts()) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/194446dd/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 f970469..a30331f 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
@@ -17,13 +17,12 @@
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.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.
*/
@@ -37,7 +36,7 @@ public class CacheClientReconnectDiscoveryData implements Serializable {
/**
* @param clientCaches Information about caches started on re-joining client node.
*/
- public CacheClientReconnectDiscoveryData(Map<String, CacheInfo> clientCaches) {
+ CacheClientReconnectDiscoveryData(Map<String, CacheInfo> clientCaches) {
this.clientCaches = clientCaches;
}
@@ -77,7 +76,7 @@ public class CacheClientReconnectDiscoveryData implements Serializable {
* @param nearCache Near cache flag.
* @param flags Flags (for future usage).
*/
- public CacheInfo(CacheConfiguration ccfg,
+ CacheInfo(CacheConfiguration ccfg,
CacheType cacheType,
IgniteUuid deploymentId,
boolean nearCache,
@@ -94,7 +93,7 @@ public class CacheClientReconnectDiscoveryData implements Serializable {
}
/**
- * @return Cache configuraiton.
+ * @return Cache configuration.
*/
CacheConfiguration config() {
return ccfg;
http://git-wip-us.apache.org/repos/asf/ignite/blob/194446dd/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 fad03bb..28ec600 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
@@ -17,9 +17,19 @@
package org.apache.ignite.internal.processors.cache;
+import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
import java.util.concurrent.Callable;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.cache.CacheExistsException;
@@ -36,25 +46,13 @@ import org.apache.ignite.internal.util.typedef.internal.CU;
import org.apache.ignite.lang.IgniteInClosure;
import org.apache.ignite.spi.discovery.DiscoveryDataBag;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
import static org.apache.ignite.cache.CacheMode.LOCAL;
import static org.apache.ignite.cache.CacheMode.PARTITIONED;
import static org.apache.ignite.events.EventType.EVT_NODE_JOINED;
import static org.apache.ignite.internal.GridComponent.DiscoveryDataExchangeType.CACHE_PROC;
/**
- *
+ * Logic related to cache discovery date processing.
*/
class ClusterCachesInfo {
/** */
@@ -129,7 +127,8 @@ class ClusterCachesInfo {
* @param rmt Remote node.
* @throws IgniteCheckedException If check failed.
*/
- private void checkCache(CacheConfiguration locCfg, CacheConfiguration rmtCfg, UUID rmt) throws IgniteCheckedException {
+ private void checkCache(CacheConfiguration<?, ?> locCfg, CacheConfiguration<?, ?> rmtCfg, UUID rmt)
+ throws IgniteCheckedException {
GridCacheAttributes rmtAttr = new GridCacheAttributes(rmtCfg);
GridCacheAttributes locAttr = new GridCacheAttributes(locCfg);
@@ -277,7 +276,7 @@ class ClusterCachesInfo {
"client cache (a cache with the given name is not started): " + req.cacheName()));
}
else {
- CacheConfiguration ccfg = req.startCacheConfiguration();
+ CacheConfiguration<?, ?> ccfg = req.startCacheConfiguration();
assert req.cacheType() != null : req;
assert F.eq(ccfg.getName(), req.cacheName()) : req;
@@ -630,7 +629,7 @@ class ClusterCachesInfo {
}
for (CacheData cacheData : cachesData.caches().values()) {
- CacheConfiguration cfg = cacheData.cacheConfiguration();
+ CacheConfiguration<?, ?> cfg = cacheData.cacheConfiguration();
DynamicCacheDescriptor desc = new DynamicCacheDescriptor(
ctx,
@@ -683,7 +682,7 @@ class ClusterCachesInfo {
if (firstNode && !joinDiscoData.caches().containsKey(desc.cacheName()))
continue;
- CacheConfiguration cfg = desc.cacheConfiguration();
+ CacheConfiguration<?, ?> cfg = desc.cacheConfiguration();
CacheJoinNodeDiscoveryData.CacheInfo locCfg = joinDiscoData.caches().get(cfg.getName());
@@ -761,7 +760,7 @@ class ClusterCachesInfo {
*/
private void processJoiningNode(CacheJoinNodeDiscoveryData joinData, UUID nodeId) {
for (CacheJoinNodeDiscoveryData.CacheInfo cacheInfo : joinData.templates().values()) {
- CacheConfiguration cfg = cacheInfo.config();
+ CacheConfiguration<?, ?> cfg = cacheInfo.config();
if (!registeredTemplates.containsKey(cfg.getName())) {
DynamicCacheDescriptor desc = new DynamicCacheDescriptor(ctx,
@@ -780,7 +779,7 @@ class ClusterCachesInfo {
}
for (CacheJoinNodeDiscoveryData.CacheInfo cacheInfo : joinData.caches().values()) {
- CacheConfiguration cfg = cacheInfo.config();
+ CacheConfiguration<?, ?> cfg = cacheInfo.config();
if (!registeredCaches.containsKey(cfg.getName())) {
DynamicCacheDescriptor desc = new DynamicCacheDescriptor(ctx,
http://git-wip-us.apache.org/repos/asf/ignite/blob/194446dd/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 a9861b1..40d3706 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
@@ -98,6 +98,7 @@ public class DynamicCacheDescriptor {
* @param rcvdFrom ID of node provided cache configuration
* @param staticCfg {@code True} if cache statically configured.
* @param deploymentId Deployment ID.
+ * @param schema Query schema.
*/
@SuppressWarnings("unchecked")
public DynamicCacheDescriptor(GridKernalContext ctx,
@@ -188,6 +189,7 @@ public class DynamicCacheDescriptor {
* Creates and caches cache object context if needed.
*
* @param proc Object processor.
+ * @return Cache object context.
*/
public CacheObjectContext cacheObjectContext(IgniteCacheObjectProcessor proc) throws IgniteCheckedException {
if (objCtx == null) {
@@ -224,14 +226,14 @@ public class DynamicCacheDescriptor {
/**
* @return {@code True} if received in discovery data.
*/
- public boolean receivedOnDiscovery() {
+ boolean receivedOnDiscovery() {
return rcvdOnDiscovery;
}
/**
* @param rcvdOnDiscovery {@code True} if received in discovery data.
*/
- public void receivedOnDiscovery(boolean rcvdOnDiscovery) {
+ void receivedOnDiscovery(boolean rcvdOnDiscovery) {
this.rcvdOnDiscovery = rcvdOnDiscovery;
}
@@ -245,14 +247,14 @@ public class DynamicCacheDescriptor {
/**
* @return Topology version when node provided cache configuration was started.
*/
- @Nullable public AffinityTopologyVersion receivedFromStartVersion() {
+ @Nullable AffinityTopologyVersion receivedFromStartVersion() {
return rcvdFromVer;
}
/**
* @param rcvdFromVer Topology version when node provided cache configuration was started.
*/
- public void receivedFromStartVersion(AffinityTopologyVersion rcvdFromVer) {
+ void receivedFromStartVersion(AffinityTopologyVersion rcvdFromVer) {
this.rcvdFromVer = rcvdFromVer;
}
@@ -281,7 +283,7 @@ public class DynamicCacheDescriptor {
/**
* @param clientCacheStartVer Version when client cache on local node was started.
*/
- public void clientCacheStartVersion(AffinityTopologyVersion clientCacheStartVer) {
+ void clientCacheStartVersion(AffinityTopologyVersion clientCacheStartVer) {
this.clientCacheStartVer = clientCacheStartVer;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/194446dd/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 99fd29d..eac1120 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
@@ -17,17 +17,16 @@
package org.apache.ignite.internal.processors.cache;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import org.apache.ignite.internal.util.typedef.F;
-
-import java.util.ArrayList;
-import java.util.List;
import org.jetbrains.annotations.Nullable;
/**
@@ -55,7 +54,7 @@ public class ExchangeActions {
/**
* @return {@code True} if server nodes should not participate in exchange.
*/
- public boolean clientOnlyExchange() {
+ boolean clientOnlyExchange() {
return F.isEmpty(cachesToStart) &&
F.isEmpty(cachesToStop) &&
F.isEmpty(cachesToResetLostParts);
@@ -65,7 +64,7 @@ public class ExchangeActions {
* @param nodeId Local node ID.
* @return Close cache requests.
*/
- public List<DynamicCacheChangeRequest> closeRequests(UUID nodeId) {
+ List<DynamicCacheChangeRequest> closeRequests(UUID nodeId) {
List<DynamicCacheChangeRequest> res = null;
if (cachesToClose != null) {
@@ -83,6 +82,13 @@ public class ExchangeActions {
}
/**
+ * @return New caches start requests.
+ */
+ Collection<ActionData> cacheStartRequests() {
+ return cachesToStart != null ? cachesToStart.values() : Collections.<ActionData>emptyList();
+ }
+
+ /**
* @return Start cache requests.
*/
Collection<ActionData> newAndClientCachesStartRequests() {
@@ -104,8 +110,8 @@ public class ExchangeActions {
/**
* @return Stop cache requests.
*/
- Collection<ActionData> stopRequests() {
- return cachesToStop != null ? cachesToStop.values() : Collections.EMPTY_LIST;
+ Collection<ActionData> cacheStopRequests() {
+ return cachesToStop != null ? cachesToStop.values() : Collections.<ActionData>emptyList();
}
/**
@@ -194,7 +200,10 @@ public class ExchangeActions {
return false;
}
- public void newClusterState(ClusterState state) {
+ /**
+ * @param state New cluster state.
+ */
+ void newClusterState(ClusterState state) {
assert state != null;
newState = state;
http://git-wip-us.apache.org/repos/asf/ignite/blob/194446dd/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 9ebfc4e..06ad62d 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
@@ -641,9 +641,9 @@ public class GridCacheProcessor extends GridProcessorAdapter {
Map<String, CacheJoinNodeDiscoveryData.CacheInfo> templates = new HashMap<>();
- registerCacheFromConfig(caches, templates);
+ addCacheOnJoinFromConfig(caches, templates);
- registerCacheFromPersistentStore(caches, templates);
+ addCacheOnJoinFromPersistentStore(caches, templates);
CacheJoinNodeDiscoveryData discoData = new CacheJoinNodeDiscoveryData(IgniteUuid.randomUuid(),
caches,
@@ -669,7 +669,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
* @param templates Templates map.
* @throws IgniteCheckedException If failed.
*/
- private void registerCache(CacheConfiguration cfg,
+ private void addCacheOnJoin(CacheConfiguration cfg,
Map<String, CacheJoinNodeDiscoveryData.CacheInfo> caches,
Map<String, CacheJoinNodeDiscoveryData.CacheInfo> templates) throws IgniteCheckedException {
CU.validateCacheName(cfg.getName());
@@ -717,7 +717,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
* @param templates Templates map.
* @throws IgniteCheckedException If failed.
*/
- private void registerCacheFromConfig(
+ private void addCacheOnJoinFromConfig(
Map<String, CacheJoinNodeDiscoveryData.CacheInfo> caches,
Map<String, CacheJoinNodeDiscoveryData.CacheInfo> templates
) throws IgniteCheckedException {
@@ -730,7 +730,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
cfgs[i] = cfg; // Replace original configuration value.
- registerCache(cfg, caches, templates);
+ addCacheOnJoin(cfg, caches, templates);
}
}
@@ -739,7 +739,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
* @param templates Templates map.
* @throws IgniteCheckedException If failed.
*/
- private void registerCacheFromPersistentStore(
+ private void addCacheOnJoinFromPersistentStore(
Map<String, CacheJoinNodeDiscoveryData.CacheInfo> caches,
Map<String, CacheJoinNodeDiscoveryData.CacheInfo> templates
) throws IgniteCheckedException {
@@ -760,7 +760,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
CacheConfiguration cfg = sharedCtx.pageStore().readConfiguration(name);
if (cfg != null)
- registerCache(cfg, caches, templates);
+ addCacheOnJoin(cfg, caches, templates);
}
}
}
@@ -791,12 +791,13 @@ public class GridCacheProcessor extends GridProcessorAdapter {
ClusterNode locNode = ctx.discovery().localNode();
try {
- boolean check = !ctx.config().isDaemon() && !getBoolean(IGNITE_SKIP_CONFIGURATION_CONSISTENCY_CHECK);
+ boolean checkConsistency =
+ !ctx.config().isDaemon() && !getBoolean(IGNITE_SKIP_CONFIGURATION_CONSISTENCY_CHECK);
- if (check)
+ if (checkConsistency)
checkConsistency();
- cachesInfo.onKernalStart(check);
+ cachesInfo.onKernalStart(checkConsistency);
boolean currStatus = ctx.state().active();
@@ -1917,7 +1918,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
}
if (exchActions != null && err == null) {
- for (ExchangeActions.ActionData action : exchActions.stopRequests()) {
+ for (ExchangeActions.ActionData action : exchActions.cacheStopRequests()) {
stopGateway(action.request());
prepareCacheStop(action.request());
http://git-wip-us.apache.org/repos/asf/ignite/blob/194446dd/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheDiscoveryDataConcurrentJoinTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheDiscoveryDataConcurrentJoinTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheDiscoveryDataConcurrentJoinTest.java
index 2f11c86..a80830a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheDiscoveryDataConcurrentJoinTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheDiscoveryDataConcurrentJoinTest.java
@@ -17,6 +17,12 @@
package org.apache.ignite.internal.processors.cache.distributed;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.atomic.AtomicInteger;
import org.apache.ignite.Ignite;
import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
import org.apache.ignite.cluster.ClusterNode;
@@ -32,13 +38,6 @@ import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryJoinRequestMessa
import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ThreadLocalRandom;
-import java.util.concurrent.atomic.AtomicInteger;
-
import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/194446dd/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
index 4a5d2d8..e423098 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
@@ -82,7 +82,19 @@ import org.apache.ignite.internal.processors.cache.IgniteStartCacheInTransaction
import org.apache.ignite.internal.processors.cache.IgniteStartCacheInTransactionSelfTest;
import org.apache.ignite.internal.processors.cache.IgniteSystemCacheOnClientTest;
import org.apache.ignite.internal.processors.cache.MarshallerCacheJobRunNodeRestartTest;
-import org.apache.ignite.internal.processors.cache.distributed.*;
+import org.apache.ignite.internal.processors.cache.distributed.CacheAffinityEarlyTest;
+import org.apache.ignite.internal.processors.cache.distributed.CacheAtomicPrimarySyncBackPressureTest;
+import org.apache.ignite.internal.processors.cache.distributed.CacheDiscoveryDataConcurrentJoinTest;
+import org.apache.ignite.internal.processors.cache.distributed.CacheGetFutureHangsSelfTest;
+import org.apache.ignite.internal.processors.cache.distributed.CacheNoValueClassOnServerNodeTest;
+import org.apache.ignite.internal.processors.cache.distributed.CacheStartOnJoinTest;
+import org.apache.ignite.internal.processors.cache.distributed.IgniteCacheCreatePutMultiNodeSelfTest;
+import org.apache.ignite.internal.processors.cache.distributed.IgniteCacheCreatePutTest;
+import org.apache.ignite.internal.processors.cache.distributed.IgniteCachePrimarySyncTest;
+import org.apache.ignite.internal.processors.cache.distributed.IgniteCacheReadFromBackupTest;
+import org.apache.ignite.internal.processors.cache.distributed.IgniteCacheSingleGetMessageTest;
+import org.apache.ignite.internal.processors.cache.distributed.IgniteTxCachePrimarySyncTest;
+import org.apache.ignite.internal.processors.cache.distributed.IgniteTxCacheWriteSynchronizationModesMultithreadedTest;
import org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheDhtTxPreloadSelfTest;
import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCacheLockFailoverSelfTest;
import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCacheMultiTxLockSelfTest;
@@ -200,7 +212,6 @@ public class IgniteCacheTestSuite4 extends TestSuite {
suite.addTestSuite(IgniteCacheTxPreloadNoWriteTest.class);
- suite.addTestSuite(IgniteCacheStartTest.class);
suite.addTestSuite(IgniteDynamicCacheStartSelfTest.class);
suite.addTestSuite(IgniteDynamicCacheWithConfigStartSelfTest.class);
suite.addTestSuite(IgniteCacheDynamicStopSelfTest.class);
@@ -213,6 +224,7 @@ public class IgniteCacheTestSuite4 extends TestSuite {
suite.addTestSuite(IgniteCacheCreatePutMultiNodeSelfTest.class);
suite.addTestSuite(IgniteCacheCreatePutTest.class);
suite.addTestSuite(CacheStartOnJoinTest.class);
+ suite.addTestSuite(IgniteCacheStartTest.class);
suite.addTestSuite(CacheDiscoveryDataConcurrentJoinTest.class);
suite.addTestSuite(GridCacheTxLoadFromStoreOnLockSelfTest.class);
[08/15] ignite git commit: ignite-5075
Posted by sb...@apache.org.
ignite-5075
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ace34f2f
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ace34f2f
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ace34f2f
Branch: refs/heads/ignite-5075
Commit: ace34f2f61ecdd6f51ac54fbc452f31cdd85dafa
Parents: 6f194b3
Author: sboikov <sb...@gridgain.com>
Authored: Wed May 17 18:18:59 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed May 17 18:18:59 2017 +0300
----------------------------------------------------------------------
.../processors/cache/ClusterCachesInfo.java | 2 ++
.../processors/cache/DynamicCacheDescriptor.java | 17 +++++++++++++++++
.../processors/cache/GridCacheProcessor.java | 7 ++++---
3 files changed, 23 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ace34f2f/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 45eca44..fad03bb 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
@@ -642,6 +642,8 @@ class ClusterCachesInfo {
cacheData.deploymentId(),
cacheData.schema());
+ desc.receivedOnDiscovery(true);
+
registeredCaches.put(cacheData.cacheConfiguration().getName(), desc);
ctx.discovery().setCacheFilter(
http://git-wip-us.apache.org/repos/asf/ignite/blob/ace34f2f/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 366ea7d..a9861b1 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
@@ -73,6 +73,9 @@ public class DynamicCacheDescriptor {
private volatile CacheObjectContext objCtx;
/** */
+ private boolean rcvdOnDiscovery;
+
+ /** */
private AffinityTopologyVersion startTopVer;
/** */
@@ -219,6 +222,20 @@ public class DynamicCacheDescriptor {
}
/**
+ * @return {@code True} if received in discovery data.
+ */
+ public boolean receivedOnDiscovery() {
+ return rcvdOnDiscovery;
+ }
+
+ /**
+ * @param rcvdOnDiscovery {@code True} if received in discovery data.
+ */
+ public void receivedOnDiscovery(boolean rcvdOnDiscovery) {
+ this.rcvdOnDiscovery = rcvdOnDiscovery;
+ }
+
+ /**
* @return ID of node provided cache configuration in discovery data.
*/
@Nullable public UUID receivedFrom() {
http://git-wip-us.apache.org/repos/asf/ignite/blob/ace34f2f/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 bc6a7d6..9ebfc4e 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
@@ -812,8 +812,10 @@ public class GridCacheProcessor extends GridProcessorAdapter {
CacheConfiguration c = desc.cacheConfiguration();
IgnitePredicate filter = c.getNodeFilter();
- // TODO IGNITE-5075.
- if (c.getName().equals(conf.getName()) && ((CU.affinityNode(locNode, filter)) || CU.isSystemCache(c.getName()))) {
+ if (c.getName().equals(conf.getName()) &&
+ ((desc.receivedOnDiscovery() && CU.affinityNode(locNode, filter)) ||
+ CU.isSystemCache(c.getName()))) {
+
tmpCacheCfg.add(c);
break;
@@ -840,7 +842,6 @@ public class GridCacheProcessor extends GridProcessorAdapter {
ctx.query().onCacheKernalStart();
- // Must call onKernalStart on shared managers after creation of fetched caches.
for (GridCacheSharedManager<?, ?> mgr : sharedCtx.managers()) {
if (sharedCtx.database() != mgr)
mgr.onKernalStart(false);
[13/15] ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-5075-cacheStart' into ignite-5075
Posted by sb...@apache.org.
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/CacheClientReconnectDiscoveryData.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/ExchangeActions.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a7bc8951
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a7bc8951
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a7bc8951
Branch: refs/heads/ignite-5075
Commit: a7bc895111f1a9ed3868c83f55490fb64dc4eac8
Parents: 9c7f9f2 d20b76c
Author: sboikov <sb...@gridgain.com>
Authored: Wed May 17 23:12:36 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed May 17 23:12:36 2017 +0300
----------------------------------------------------------------------
assembly/LICENSE_FABRIC | 2 +-
assembly/LICENSE_HADOOP | 2 +-
.../managers/communication/GridIoManager.java | 68 ++++++++++++----
.../cache/CacheAffinitySharedManager.java | 30 +++----
.../CacheClientReconnectDiscoveryData.java | 7 +-
.../processors/cache/ClusterCachesInfo.java | 18 +++--
.../cache/DynamicCacheDescriptor.java | 25 +++++-
.../processors/cache/ExchangeActions.java | 25 ++++--
.../processors/cache/GridCacheProcessor.java | 30 +++----
.../continuous/CacheContinuousQueryHandler.java | 37 +++++----
.../processors/hadoop/HadoopClasspathUtils.java | 3 +-
.../CacheDiscoveryDataConcurrentJoinTest.java | 13 ++-
.../testsuites/IgniteCacheTestSuite4.java | 16 +++-
modules/hadoop/pom.xml | 2 +-
.../ignite/impl/binary/binary_type_manager.h | 6 +-
.../src/impl/binary/binary_type_manager.cpp | 83 +++++++++-----------
.../cpp/core-test/src/cache_query_test.cpp | 22 ++++++
.../core/include/ignite/cache/query/query_sql.h | 8 ++
.../ignite/cache/query/query_sql_fields.h | 10 ++-
.../query-example/src/query_example.cpp | 6 +-
.../Cache/MemoryMetricsTest.cs | 14 ++--
.../frontend/gulpfile.babel.js/tasks/bundle.js | 2 +-
.../webpack/environments/development.js | 5 +-
23 files changed, 275 insertions(+), 159 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a7bc8951/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a7bc8951/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 37c17df,f53ff07..49b765f
--- 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
@@@ -453,25 -455,24 +452,25 @@@ public class CacheAffinitySharedManager
}
}
- for (ExchangeActions.ActionData action : exchActions.stopRequests())
- Set<Integer> stoppedCaches = null;
-
- for (ExchangeActions.ActionData action : exchActions.cacheStopRequests()) {
- DynamicCacheDescriptor desc = action.descriptor();
-
++ for (ExchangeActions.ActionData action : exchActions.cacheStopRequests())
cctx.cache().blockGateway(action.request());
- if (crd && desc.cacheConfiguration().getCacheMode() != LOCAL) {
- CacheHolder cache = caches.remove(desc.cacheId());
+ Set<Integer> stoppedGrps = null;
- assert cache != null : action.request();
+ if (crd) {
+ for (CacheGroupDescriptor grpDesc : exchActions.cacheGroupsToStop()) {
+ if (grpDesc.config().getCacheMode() != LOCAL) {
+ CacheGroupHolder cacheGrp = grpHolders.remove(grpDesc.groupId());
+
+ assert cacheGrp != null : grpDesc;
- if (stoppedCaches == null)
- stoppedCaches = new HashSet<>();
+ if (stoppedGrps == null)
+ stoppedGrps = new HashSet<>();
- stoppedCaches.add(cache.cacheId());
+ stoppedGrps.add(cacheGrp.groupId());
- cctx.io().removeHandler(desc.cacheId(), GridDhtAffinityAssignmentResponse.class);
+ cctx.io().removeHandler(true, cacheGrp.groupId(), GridDhtAffinityAssignmentResponse.class);
+ }
}
}
@@@ -882,24 -869,24 +883,25 @@@
}
/**
- * @param desc Cache descriptor.
++ * @param desc Cache group descriptor.
* @param aff Affinity.
* @param fut Exchange future.
* @return {@code True} if local node can calculate affinity on it's own for this partition map exchange.
*/
- private boolean canCalculateAffinity(GridAffinityAssignmentCache aff, GridDhtPartitionsExchangeFuture fut) {
- private boolean canCalculateAffinity(DynamicCacheDescriptor desc,
++ private boolean canCalculateAffinity(CacheGroupDescriptor desc,
+ GridAffinityAssignmentCache aff,
+ GridDhtPartitionsExchangeFuture fut) {
- assert desc != null : aff.cacheName();
++ assert desc != null : aff.cacheOrGroupName();
+
// Do not request affinity from remote nodes if affinity function is not centralized.
if (!aff.centralizedAffinityFunction())
return true;
// If local node did not initiate exchange or local node is the only cache node in grid.
- Collection<ClusterNode> affNodes = cctx.discovery().cacheAffinityNodes(aff.cacheId(), fut.topologyVersion());
+ Collection<ClusterNode> affNodes =
+ cctx.discovery().cacheGroupAffinityNodes(aff.groupId(), fut.topologyVersion());
- CacheGroupDescriptor grpDesc = registeredGrps.get(aff.groupId());
-
- assert grpDesc != null : aff.cacheOrGroupName();
-
- return fut.cacheGroupAddedOnExchange(aff.groupId(), grpDesc.receivedFrom()) ||
- return fut.cacheAddedOnExchange(aff.cacheId(), desc.receivedFrom()) ||
++ return fut.cacheGroupAddedOnExchange(aff.groupId(), desc.receivedFrom()) ||
!fut.exchangeId().nodeId().equals(cctx.localNodeId()) ||
(affNodes.size() == 1 && affNodes.contains(cctx.localNode()));
}
@@@ -1107,14 -1089,14 +1109,14 @@@
* @param fut Exchange future.
* @throws IgniteCheckedException If failed.
*/
- private void initCachesAffinity(GridDhtPartitionsExchangeFuture fut) throws IgniteCheckedException {
+ private void initAffinityNoLateAssignment(GridDhtPartitionsExchangeFuture fut) throws IgniteCheckedException {
assert !lateAffAssign;
- for (GridCacheContext cacheCtx : cctx.cacheContexts()) {
- if (cacheCtx.isLocal())
+ for (CacheGroupInfrastructure grp : cctx.cache().cacheGroups()) {
+ if (grp.isLocal())
continue;
- initAffinity(registeredCaches.get(cacheCtx.cacheId()), cacheCtx.affinity().affinityCache(), fut, false);
+ initAffinity(registeredGrps.get(grp.groupId()), grp.affinity(), fut, false);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/a7bc8951/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheClientReconnectDiscoveryData.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a7bc8951/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 e824e09,28ec600..4938382
--- 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
@@@ -44,10 -44,8 +44,11 @@@ import org.apache.ignite.internal.util.
import org.apache.ignite.internal.util.typedef.T2;
import org.apache.ignite.internal.util.typedef.internal.CU;
import org.apache.ignite.lang.IgniteInClosure;
+import org.apache.ignite.lang.IgniteUuid;
import org.apache.ignite.spi.discovery.DiscoveryDataBag;
+
+import org.jetbrains.annotations.Nullable;
+
import static org.apache.ignite.cache.CacheMode.LOCAL;
import static org.apache.ignite.cache.CacheMode.PARTITIONED;
import static org.apache.ignite.events.EventType.EVT_NODE_JOINED;
@@@ -728,11 -629,7 +730,11 @@@ class ClusterCachesInfo
}
for (CacheData cacheData : cachesData.caches().values()) {
+ CacheGroupDescriptor grpDesc = registeredCacheGrps.get(cacheData.groupId());
+
+ assert grpDesc != null : cacheData.cacheConfiguration().getName();
+
- CacheConfiguration cfg = cacheData.cacheConfiguration();
+ CacheConfiguration<?, ?> cfg = cacheData.cacheConfiguration();
DynamicCacheDescriptor desc = new DynamicCacheDescriptor(
ctx,
@@@ -882,23 -779,9 +886,23 @@@
}
for (CacheJoinNodeDiscoveryData.CacheInfo cacheInfo : joinData.caches().values()) {
- CacheConfiguration cfg = cacheInfo.config();
+ CacheConfiguration<?, ?> cfg = cacheInfo.config();
if (!registeredCaches.containsKey(cfg.getName())) {
+ int cacheId = CU.cacheId(cfg.getName());
+
+ CacheGroupDescriptor grpDesc = registerCacheGroup(null,
+ null,
+ cfg,
+ cacheId,
+ nodeId,
+ joinData.cacheDeploymentId());
+
+ ctx.discovery().setCacheFilter(
+ grpDesc.groupId(),
+ cfg.getName(),
+ cfg.getNearConfiguration() != null);
+
DynamicCacheDescriptor desc = new DynamicCacheDescriptor(ctx,
cfg,
cacheInfo.cacheType(),
http://git-wip-us.apache.org/repos/asf/ignite/blob/a7bc8951/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a7bc8951/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ExchangeActions.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ExchangeActions.java
index a765c1b,eac1120..dd4ce01
--- 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
@@@ -71,8 -64,8 +70,8 @@@ public class ExchangeActions
* @param nodeId Local node ID.
* @return Close cache requests.
*/
- public List<ActionData> closeRequests(UUID nodeId) {
- List<DynamicCacheChangeRequest> closeRequests(UUID nodeId) {
- List<DynamicCacheChangeRequest> res = null;
++ List<ActionData> closeRequests(UUID nodeId) {
+ List<ActionData> res = null;
if (cachesToClose != null) {
for (ActionData req : cachesToClose.values()) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/a7bc8951/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a7bc8951/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a7bc8951/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheDiscoveryDataConcurrentJoinTest.java
----------------------------------------------------------------------
[04/15] ignite git commit: IGNITE-5193: Hadoop: better handling of
empty paths in environment variables. This closes #1928.
Posted by sb...@apache.org.
IGNITE-5193: Hadoop: better handling of empty paths in environment variables. This closes #1928.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ccaed07d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ccaed07d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ccaed07d
Branch: refs/heads/ignite-5075
Commit: ccaed07da57e2de2c69be55fdf45512d2d90de11
Parents: 8214463
Author: Ivan Veselovskiy <iv...@gridgain.com>
Authored: Wed May 17 13:27:11 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Wed May 17 13:27:11 2017 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/hadoop/HadoopClasspathUtils.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ccaed07d/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopClasspathUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopClasspathUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopClasspathUtils.java
index 8f7f7a8..2b377ed 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopClasspathUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopClasspathUtils.java
@@ -29,6 +29,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
+import org.apache.ignite.internal.util.typedef.F;
/**
* Hadoop classpath utilities.
@@ -258,7 +259,7 @@ public class HadoopClasspathUtils {
* @return {@code True} if the given path denotes an existing directory.
*/
public static boolean exists(String path) {
- if (path == null)
+ if (F.isEmpty(path))
return false;
Path p = Paths.get(path);
[06/15] ignite git commit: IGNITE-5050 .NET: IIgnite.GetMemoryMetrics
- fix test stability
Posted by sb...@apache.org.
IGNITE-5050 .NET: IIgnite.GetMemoryMetrics - fix test stability
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/958b08f5
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/958b08f5
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/958b08f5
Branch: refs/heads/ignite-5075
Commit: 958b08f502290e9ab59b523535554212a74d1cdc
Parents: 03ed381
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Wed May 17 16:11:25 2017 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Wed May 17 16:11:25 2017 +0300
----------------------------------------------------------------------
.../Cache/MemoryMetricsTest.cs | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/958b08f5/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/MemoryMetricsTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/MemoryMetricsTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/MemoryMetricsTest.cs
index 07b596a..0aba377 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/MemoryMetricsTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/MemoryMetricsTest.cs
@@ -42,12 +42,12 @@ namespace Apache.Ignite.Core.Tests.Cache
var ignite = StartIgniteWithTwoPolicies();
// Verify metrics.
- var metrics = ignite.GetMemoryMetrics().ToArray();
+ var metrics = ignite.GetMemoryMetrics().OrderBy(x => x.Name).ToArray();
Assert.AreEqual(3, metrics.Length); // two defined plus system.
- var sysMetrics = metrics[0];
- Assert.AreEqual("sysMemPlc", sysMetrics.Name);
- AssertMetricsAreEmpty(sysMetrics);
+ var emptyMetrics = metrics[0];
+ Assert.AreEqual(MemoryPolicyNoMetrics, emptyMetrics.Name);
+ AssertMetricsAreEmpty(emptyMetrics);
var memMetrics = metrics[1];
Assert.AreEqual(MemoryPolicyWithMetrics, memMetrics.Name);
@@ -57,9 +57,9 @@ namespace Apache.Ignite.Core.Tests.Cache
Assert.Greater(memMetrics.PageFillFactor, 0);
Assert.Greater(memMetrics.TotalAllocatedPages, 1000);
- var emptyMetrics = metrics[2];
- Assert.AreEqual(MemoryPolicyNoMetrics, emptyMetrics.Name);
- AssertMetricsAreEmpty(emptyMetrics);
+ var sysMetrics = metrics[2];
+ Assert.AreEqual("sysMemPlc", sysMetrics.Name);
+ AssertMetricsAreEmpty(sysMetrics);
}
/// <summary>