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/02/20 12:27:32 UTC
[30/32] ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-2.0' into ignite-4705
Merge remote-tracking branch 'remotes/origin/ignite-2.0' into ignite-4705
# Conflicts:
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicAbstractUpdateFuture.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0ef89594
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0ef89594
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0ef89594
Branch: refs/heads/ignite-4705
Commit: 0ef895943c844572dea0dca11c47f612a64ed513
Parents: 7b97988 e1d8224
Author: sboikov <sb...@gridgain.com>
Authored: Mon Feb 20 15:04:39 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Feb 20 15:04:39 2017 +0300
----------------------------------------------------------------------
examples/config/spark/example-shared-rdd.xml | 83 +++
examples/pom.xml | 27 +-
.../examples/java8/spark/SharedRDDExample.java | 110 ++++
.../examples/spark/ScalarSharedRDDExample.scala | 89 +++
.../examples/SharedRDDExampleSelfTest.java | 36 ++
.../IgniteExamplesJ8SelfTestSuite.java | 3 +
.../tests/examples/ScalarExamplesSelfTest.scala | 6 +
.../java/org/apache/ignite/IgniteMessaging.java | 11 +-
.../ignite/internal/GridKernalGatewayImpl.java | 25 +-
.../org/apache/ignite/internal/GridTopic.java | 2 +-
.../apache/ignite/internal/IgniteKernal.java | 48 +-
.../ignite/internal/IgniteMessagingImpl.java | 6 +-
.../internal/StripedExecutorMXBeanAdapter.java | 90 +++
.../client/util/GridClientConsistentHash.java | 14 +-
.../internal/managers/GridManagerAdapter.java | 2 +-
.../managers/communication/GridIoManager.java | 84 +--
.../discovery/GridDiscoveryManager.java | 268 +++------
.../eventstorage/GridEventStorageManager.java | 34 +-
.../affinity/GridAffinityAssignmentCache.java | 8 +-
.../cache/CacheAffinitySharedManager.java | 2 +-
.../cache/GridCacheEvictionManager.java | 60 +-
.../processors/cache/GridCacheGateway.java | 48 +-
.../processors/cache/GridCacheIoManager.java | 19 +-
.../processors/cache/GridCacheProcessor.java | 5 +
.../processors/cache/GridCacheUtils.java | 6 +-
.../cache/affinity/GridCacheAffinityImpl.java | 2 +-
.../dht/GridClientPartitionTopology.java | 13 +-
.../dht/GridDhtAssignmentFetchFuture.java | 5 +-
.../distributed/dht/GridDhtCacheAdapter.java | 23 +-
.../dht/GridDhtPartitionTopologyImpl.java | 14 +-
.../distributed/dht/GridDhtTxPrepareFuture.java | 35 +-
.../GridDhtAtomicAbstractUpdateFuture.java | 4 +-
.../GridDhtAtomicAbstractUpdateRequest.java | 2 +-
.../dht/atomic/GridDhtAtomicCache.java | 11 +-
.../atomic/GridDhtAtomicSingleUpdateFuture.java | 6 +-
.../GridDhtAtomicSingleUpdateRequest.java | 5 +-
.../dht/atomic/GridDhtAtomicUpdateFuture.java | 6 +-
.../dht/atomic/GridDhtAtomicUpdateRequest.java | 10 +-
.../dht/atomic/GridDhtAtomicUpdateResponse.java | 31 +-
.../GridNearAtomicSingleUpdateFuture.java | 2 +
.../dht/atomic/GridNearAtomicUpdateFuture.java | 4 +-
.../atomic/GridNearAtomicUpdateResponse.java | 15 +
.../dht/preloader/GridDhtPreloader.java | 39 +-
.../near/GridNearSingleGetRequest.java | 5 +
.../cache/query/GridCacheQueryManager.java | 97 ++--
.../cache/transactions/IgniteTxHandler.java | 4 +-
.../cache/version/GridCacheVersion.java | 2 +-
.../cache/version/GridCacheVersionManager.java | 2 +-
.../clock/GridClockSyncProcessor.java | 2 +-
.../marshaller/ClientRequestFuture.java | 2 +-
.../processors/query/GridQueryIndexing.java | 17 +-
.../processors/query/GridQueryProcessor.java | 32 +-
.../processors/query/GridRunningQueryInfo.java | 132 +++++
.../ignite/internal/util/GridBusyLock.java | 2 +-
.../util/StripedCompositeReadWriteLock.java | 50 +-
.../ignite/internal/util/StripedExecutor.java | 65 ++-
.../nio/GridAbstractCommunicationClient.java | 37 +-
.../util/nio/GridCommunicationClient.java | 5 -
.../internal/visor/VisorMultiNodeTask.java | 2 +-
.../visor/cache/VisorCacheClearTask.java | 88 +--
.../visor/cache/VisorCacheTypeMetadata.java | 6 +
.../visor/compute/VisorGatewayTask.java | 30 +-
.../visor/query/VisorCancelQueriesTask.java | 72 +++
.../query/VisorCollectRunningQueriesTask.java | 96 ++++
.../internal/visor/query/VisorRunningQuery.java | 132 +++++
.../ignite/mxbean/StripedExecutorMXBean.java | 90 +++
.../communication/tcp/TcpCommunicationSpi.java | 9 +
.../org/apache/ignite/thread/IgniteThread.java | 26 +-
.../communication/GridIoManagerSelfTest.java | 6 +-
.../GridDiscoveryManagerAliveCacheSelfTest.java | 55 --
.../discovery/GridDiscoveryManagerSelfTest.java | 214 --------
.../cache/GridCacheLifecycleAwareSelfTest.java | 33 ++
.../processors/cache/GridCacheOffHeapTest.java | 274 ----------
...niteTopologyValidatorGridSplitCacheTest.java | 334 ++++++++++++
...niteMessagingConfigVariationFullApiTest.java | 195 +++++--
.../internal/util/StripedExecutorTest.java | 168 ++++++
.../ignite/messaging/GridMessagingSelfTest.java | 114 +++-
.../messaging/IgniteMessagingSendAsyncTest.java | 544 +++++++++++++++++++
.../junits/multijvm/IgniteProcessProxy.java | 5 +-
.../ignite/testsuites/IgniteBasicTestSuite.java | 2 +
.../testsuites/IgniteComputeGridTestSuite.java | 2 +
.../testsuites/IgniteKernalSelfTestSuite.java | 5 +-
.../IgniteTopologyValidatorTestSuit.java | 1 +
.../hadoop/shuffle/HadoopShuffle.java | 2 +-
.../cache/query/GridCacheTwoStepQuery.java | 18 +-
.../processors/query/h2/IgniteH2Indexing.java | 81 ++-
.../query/h2/sql/GridSqlQuerySplitter.java | 4 +-
.../h2/twostep/GridReduceQueryExecutor.java | 60 +-
.../cache/CacheSqlQueryValueCopySelfTest.java | 208 ++++++-
.../cache/GridCacheCrossCacheQuerySelfTest.java | 2 +-
.../h2/GridIndexingSpiAbstractSelfTest.java | 7 +
modules/kubernetes/DEVNOTES.txt | 63 +++
modules/kubernetes/README.txt | 33 ++
modules/kubernetes/config/Dockerfile | 45 ++
modules/kubernetes/config/example-kube.xml | 44 ++
.../kubernetes/config/ignite-deployment.yaml | 26 +
modules/kubernetes/config/ignite-service.yaml | 14 +
modules/kubernetes/config/run.sh | 50 ++
modules/kubernetes/licenses/apache-2.0.txt | 202 +++++++
modules/kubernetes/pom.xml | 93 ++++
.../TcpDiscoveryKubernetesIpFinder.java | 317 +++++++++++
.../tcp/ipfinder/kubernetes/package-info.java | 22 +
.../TcpDiscoveryKubernetesIpFinderSelfTest.java | 93 ++++
.../tcp/ipfinder/kubernetes/package-info.java | 22 +
.../testsuites/IgniteKubernetesTestSuite.java | 41 ++
.../apache/ignite/spark/JavaIgniteContext.scala | 6 +
.../ignite/tools/classgen/ClassesGenerator.java | 4 +-
.../web-console/backend/routes/activities.js | 7 -
modules/web-console/backend/routes/profile.js | 4 +-
.../web-console/backend/services/activities.js | 30 +-
.../web-console/backend/services/sessions.js | 6 +-
modules/web-console/backend/services/users.js | 7 +-
.../backend/test/unit/ActivitiesService.test.js | 131 +++++
modules/web-console/frontend/app/app.config.js | 4 +
.../activities-user-dialog.controller.js | 39 +-
.../activities-user-dialog.jade | 2 +-
.../components/activities-user-dialog/index.js | 5 +-
.../form-field-datepicker.jade | 4 +-
.../list-of-registered-users.column-defs.js | 26 +-
.../list-of-registered-users.controller.js | 56 +-
.../list-of-registered-users.jade | 16 +-
.../ui-grid-settings/ui-grid-settings.scss | 39 +-
.../app/core/activities/Activities.data.js | 5 -
modules/web-console/frontend/app/data/i18n.js | 1 +
.../ui-ace-pom/ui-ace-pom.controller.js | 4 +-
.../frontend/app/modules/agent/agent.module.js | 15 -
.../modules/configuration/Version.service.js | 35 +-
.../configuration/configuration.module.js | 6 +-
.../configuration/generator/Maven.service.js | 10 +-
.../configuration/summary/summary.worker.js | 34 +-
modules/web-console/frontend/package.json | 182 +++----
.../frontend/public/stylesheets/style.scss | 8 -
.../frontend/public/stylesheets/variables.scss | 1 -
.../frontend/test/unit/Version.test.js | 26 +-
.../views/templates/agent-download.jade | 10 +-
.../console/agent/handlers/RestListener.java | 9 +-
.../demo/service/DemoCachesLoadService.java | 2 +-
.../service/DemoRandomCacheLoadService.java | 2 +-
modules/yardstick/DEVNOTES-standalone.txt | 5 +-
modules/yardstick/README.txt | 85 +--
.../config/benchmark-atomic-win.properties | 2 +-
.../config/benchmark-atomic.properties | 35 +-
.../config/benchmark-bin-identity.properties | 16 +-
.../config/benchmark-cache-load-win.properties | 2 +-
.../config/benchmark-cache-load.properties | 4 +-
.../config/benchmark-client-mode.properties | 68 ++-
.../config/benchmark-compute-win.properties | 2 +-
.../config/benchmark-compute.properties | 30 +-
.../config/benchmark-failover.properties | 2 +-
.../yardstick/config/benchmark-full.properties | 62 +--
.../config/benchmark-multicast.properties | 107 ++--
.../config/benchmark-put-indexed-val.properties | 23 +-
.../benchmark-query-put-separated.properties | 3 +-
.../config/benchmark-query-win.properties | 2 +-
.../yardstick/config/benchmark-query.properties | 33 +-
.../config/benchmark-remote-sample.properties | 80 +++
.../config/benchmark-remote.properties | 119 ++++
.../config/benchmark-sample.properties | 22 +-
.../config/benchmark-sql-dml.properties | 36 +-
.../yardstick/config/benchmark-store.properties | 3 +-
.../config/benchmark-tx-win.properties | 2 +-
.../yardstick/config/benchmark-tx.properties | 33 +-
.../yardstick/config/benchmark-win.properties | 2 +-
modules/yardstick/config/benchmark.properties | 76 ++-
.../yardstick/config/ignite-remote-config.xml | 47 ++
.../test-max-int-values-offheap.properties | 3 +-
.../test-max-int-values-onheap.properties | 3 +-
.../config/test-max-int-values-swap.properties | 3 +-
modules/yardstick/pom-standalone.xml | 2 +-
modules/yardstick/pom.xml | 2 +-
.../yardstick/IgniteBenchmarkArguments.java | 28 +-
.../org/apache/ignite/yardstick/IgniteNode.java | 2 +-
.../IgniteCacheRandomOperationBenchmark.java | 49 ++
pom.xml | 6 +-
174 files changed, 5702 insertions(+), 1750 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0ef89594/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0ef89594/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0ef89594/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicAbstractUpdateFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicAbstractUpdateFuture.java
index b512bdc,4cb113e..96bfcb4
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicAbstractUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicAbstractUpdateFuture.java
@@@ -109,11 -108,16 +109,13 @@@ public abstract class GridDhtAtomicAbst
*/
protected GridDhtAtomicAbstractUpdateFuture(
GridCacheContext cctx,
- CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse> completionCb,
+ GridDhtAtomicCache.UpdateReplyClosure completionCb,
GridCacheVersion writeVer,
GridNearAtomicAbstractUpdateRequest updateReq,
- GridNearAtomicUpdateResponse updateRes) {
+ GridNearAtomicUpdateResponse updateRes
+ ) {
this.cctx = cctx;
+
- this.futVer = cctx.isLocalNode(updateRes.nodeId()) ?
- cctx.versions().next(updateReq.topologyVersion()) : // Generate new if request mapped to local.
- updateReq.futureVersion();
this.updateReq = updateReq;
this.completionCb = completionCb;
this.updateRes = updateRes;
http://git-wip-us.apache.org/repos/asf/ignite/blob/0ef89594/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicAbstractUpdateRequest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0ef89594/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index 73a5acb,4745ff7..eb44414
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@@ -1793,11 -1769,13 +1792,13 @@@ public class GridDhtAtomicCache<K, V> e
private void updateAllAsyncInternal0(
UUID nodeId,
GridNearAtomicAbstractUpdateRequest req,
- CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse> completionCb
+ UpdateReplyClosure completionCb
) {
- GridNearAtomicUpdateResponse res = new GridNearAtomicUpdateResponse(ctx.cacheId(), nodeId, req.futureVersion(),
+ GridNearAtomicUpdateResponse res = new GridNearAtomicUpdateResponse(ctx.cacheId(), nodeId, req.futureId(),
ctx.deploymentEnabled());
+ res.partition(req.partition());
+
assert !req.returnValue() || (req.operation() == TRANSFORM || req.size() == 1);
GridDhtAtomicAbstractUpdateFuture dhtFut = null;
@@@ -3330,95 -3307,26 +3331,97 @@@
}
}
- if (isNearEnabled(cacheCfg))
- ((GridNearAtomicCache<K, V>)near()).processDhtAtomicUpdateRequest(nodeId, req, res);
+ GridDhtAtomicUpdateResponse dhtRes = null;
+ if (isNearEnabled(cacheCfg)) {
+ List<KeyCacheObject> nearEvicted =
+ ((GridNearAtomicCache<K, V>)near()).processDhtAtomicUpdateRequest(nodeId, req, nearRes);
+
+ dhtRes = new GridDhtAtomicUpdateResponse(ctx.cacheId(), req.futureId(), ctx.deploymentEnabled());
+
+ dhtRes.nearEvicted(nearEvicted);
++
++ dhtRes.partition(req.partition());
+ }
+
+ final boolean RES_AFTER_ACK = false;
+
+ if (nearRes != null) {
+ if (RES_AFTER_ACK)
+ sendDhtNearResponse(nodeId, req, nearRes);
+ else {
+ sendDhtNearResponse(null, req, nearRes);
+
+ sendDeferredUpdateResponse(nodeId, req.futureId());
+ }
+ }
+ else
+ sendDeferredUpdateResponse(nodeId, req.futureId());
+
+ if (dhtRes != null)
+ sendDhtPrimaryResponse(nodeId, req, dhtRes);
+ }
+
+ /**
+ * @param nodeId Primary node ID.
+ * @param req Request.
+ * @param dhtRes Response to send.
+ */
+ private void sendDhtPrimaryResponse(UUID nodeId,
+ GridDhtAtomicAbstractUpdateRequest req,
+ GridDhtAtomicUpdateResponse dhtRes) {
try {
- if (res.failedKeys() != null || res.nearEvicted() != null || req.writeSynchronizationMode() == FULL_SYNC) {
- ctx.io().send(nodeId, res, ctx.ioPolicy());
+ ctx.io().send(nodeId, dhtRes, ctx.ioPolicy());
- if (msgLog.isDebugEnabled()) {
- msgLog.debug("Sent DHT atomic update response [futId=" + req.futureVersion() +
- ", writeVer=" + req.writeVersion() + ", node=" + nodeId + ']');
- }
+ if (msgLog.isDebugEnabled()) {
+ msgLog.debug("Sent DHT response [futId=" + req.futureId() +
+ ", nearFutId=" + req.nearFutureId() +
+ ", writeVer=" + req.writeVersion() +
+ ", node=" + nodeId + ']');
}
- else {
- if (msgLog.isDebugEnabled()) {
- msgLog.debug("Will send deferred DHT atomic update response [futId=" + req.futureVersion() +
- ", writeVer=" + req.writeVersion() + ", node=" + nodeId + ']');
- }
+ }
+ catch (ClusterTopologyCheckedException ignored) {
+ U.warn(msgLog, "Failed to send DHT response, node left [futId=" + req.futureId() +
+ ", nearFutId=" + req.nearFutureId() +
+ ", node=" + nodeId + ']');
+ }
+ catch (IgniteCheckedException e) {
+ U.error(msgLog, "Failed to send DHT near response [futId=" + req.futureId() +
+ ", nearFutId=" + req.nearFutureId() +
+ ", node=" + nodeId +
+ ", res=" + dhtRes + ']', e);
+ }
+ }
+
+ /**
+ * @param primaryId Primary node ID.
+ * @param req Request.
+ * @param nearRes Response to send.
+ */
+ private void sendDhtNearResponse(final UUID primaryId,
+ final GridDhtAtomicAbstractUpdateRequest req,
+ GridDhtAtomicNearResponse nearRes) {
+ try {
+ ClusterNode node = ctx.discovery().node(req.nearNodeId());
+
+ if (node == null)
+ throw new ClusterTopologyCheckedException("Node left: " + req.nearNodeId());
+
+ if (primaryId != null) {
+ ctx.gridIO().send(node, TOPIC_CACHE, nearRes, ctx.ioPolicy(), new IgniteInClosure<IgniteException>() {
+ @Override public void apply(IgniteException e) {
+ sendDeferredUpdateResponse(primaryId, req.futureId());
+ }
+ });
+ }
+ else
+ ctx.gridIO().send(node, TOPIC_CACHE, nearRes, ctx.ioPolicy());
- // No failed keys and sync mode is not FULL_SYNC, thus sending deferred response.
- sendDeferredUpdateResponse(nodeId, req.futureVersion());
+ if (msgLog.isDebugEnabled()) {
+ msgLog.debug("Sent DHT near response [futId=" + req.futureId() +
+ ", nearFutId=" + req.nearFutureId() +
+ ", writeVer=" + req.writeVersion() +
+ ", node=" + req.nearNodeId() + ']');
}
}
catch (ClusterTopologyCheckedException ignored) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/0ef89594/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicSingleUpdateFuture.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0ef89594/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicSingleUpdateRequest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0ef89594/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0ef89594/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0ef89594/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
index c803d1a,c3d3ca9..6990409
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
@@@ -157,12 -161,17 +160,24 @@@ public class GridDhtAtomicUpdateRespons
}
/**
+ * @param nearEvicted Evicted near cache keys.
+ */
+ void nearEvicted(List<KeyCacheObject> nearEvicted) {
+ this.nearEvicted = nearEvicted;
+ }
+
++ /**
+ * @param partId Partition ID to set.
+ */
+ public void partition(int partId) {
+ this.partId = partId;
+ }
+
+ /** {@inheritDoc} */
+ @Override public int partition() {
+ return partId;
+ }
+
/** {@inheritDoc} */
@Override public void prepareMarshal(GridCacheSharedContext ctx) throws IgniteCheckedException {
super.prepareMarshal(ctx);
http://git-wip-us.apache.org/repos/asf/ignite/blob/0ef89594/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
index 8bfbe72,0a816a7..adb6a1c
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
@@@ -473,13 -379,11 +473,15 @@@ public class GridNearAtomicSingleUpdate
/** {@inheritDoc} */
@Override protected void mapOnTopology() {
+ // TODO IGNITE-4705: primary should block topology change, so it seem read lock is not needed.
+ cache.topology().readLock();
+
AffinityTopologyVersion topVer;
- GridCacheVersion futVer;
+
+ Long futId;
+ cache.topology().readLock();
+
try {
if (cache.topology().stopping()) {
onDone(new IgniteCheckedException("Failed to perform cache operation (cache is stopped): " +
http://git-wip-us.apache.org/repos/asf/ignite/blob/0ef89594/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
index e135000,f182ecb..4167fab
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
@@@ -496,12 -488,11 +496,12 @@@ public class GridNearAtomicUpdateFutur
/** {@inheritDoc} */
@Override protected void mapOnTopology() {
- cache.topology().readLock();
-
AffinityTopologyVersion topVer;
- GridCacheVersion futVer;
+
+ Long futId;
+ cache.topology().readLock();
+
try {
if (cache.topology().stopping()) {
onDone(new IgniteCheckedException("Failed to perform cache operation (cache is stopped): " +
http://git-wip-us.apache.org/repos/asf/ignite/blob/0ef89594/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
index f6c2a2e,22e01ae..ecb5e1e
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
@@@ -105,10 -105,9 +105,13 @@@ public class GridNearAtomicUpdateRespon
/** Near expire times. */
private GridLongList nearExpireTimes;
+ /** */
+ @GridDirectCollection(UUID.class)
+ private List<UUID> mapping;
+
+ /** Partition ID. */
+ private int partId = -1;
+
/**
* Empty constructor required by {@link Externalizable}.
*/