Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-104 55a2fc6b1 -> b27af71d8


IGNITE-104 - Ordered ATOMIC updates


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/b27af71d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/b27af71d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/b27af71d

Branch: refs/heads/ignite-104
Commit: b27af71d81274ed351d5c43740f5c904db62adfb
Parents: 55a2fc6
Author: Valentin Kulichenko <vkuliche...@gridgain.com>
Authored: Mon Aug 3 16:51:53 2015 -0700
Committer: Valentin Kulichenko <vkuliche...@gridgain.com>
Committed: Mon Aug 3 16:51:53 2015 -0700

----------------------------------------------------------------------
 .../dht/atomic/GridDhtAtomicCache.java          | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b27af71d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --git 
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
index 9328932..4f1b887 100644
--- 
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
@@ -2409,7 +2409,25 @@ public class GridDhtAtomicCache<K, V> extends 
GridDhtCacheAdapter<K, V> {
      * @param nodeId Sender node ID.
      * @param req Dht atomic update request.
      */
-    private void processDhtAtomicUpdateRequest(UUID nodeId, 
GridDhtAtomicUpdateRequest req) {
+    private void processDhtAtomicUpdateRequest(final UUID nodeId, final 
GridDhtAtomicUpdateRequest req) {
+        IgniteInternalFuture fut = ctx.preloader().request(req.keys(), 
req.topologyVersion());
+
+        if (fut.isDone())
+            processDhtAtomicUpdateRequest0(nodeId, req);
+        else {
+            fut.listen(new CI1<IgniteInternalFuture>() {
+                @Override public void apply(IgniteInternalFuture future) {
+                    processDhtAtomicUpdateRequest0(nodeId, req);
+                }
+            });
+        }
+    }
+
+    /**
+     * @param nodeId Sender node ID.
+     * @param req Dht atomic update request.
+     */
+    private void processDhtAtomicUpdateRequest0(UUID nodeId, 
GridDhtAtomicUpdateRequest req) {
         if (log.isDebugEnabled())
             log.debug("Processing dht atomic update request [nodeId=" + nodeId 
+ ", req=" + req + ']');
 

Reply via email to