You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vk...@apache.org on 2015/07/22 04:50:55 UTC

[1/2] incubator-ignite git commit: IGNITE-104 - Ordered ATOMIC updates

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-104 4864d4c00 -> 825fbc9e4


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/e18872c7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/e18872c7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/e18872c7

Branch: refs/heads/ignite-104
Commit: e18872c7e1ee85bc5cc04df705458d5758975afe
Parents: 4864d4c
Author: Valentin Kulichenko <vk...@gridgain.com>
Authored: Tue Jul 21 19:15:56 2015 -0700
Committer: Valentin Kulichenko <vk...@gridgain.com>
Committed: Tue Jul 21 19:15:56 2015 -0700

----------------------------------------------------------------------
 .../configuration/CacheConfiguration.java       |  3 +-
 .../org/apache/ignite/internal/GridTopic.java   | 35 +++++++++++++++-----
 .../processors/cache/GridCacheUtils.java        |  4 +--
 .../dht/atomic/GridDhtAtomicCache.java          |  4 +--
 .../dht/atomic/GridDhtAtomicUpdateFuture.java   |  2 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  2 +-
 6 files changed, 35 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e18872c7/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
index 83847dc..ff32551 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
@@ -220,7 +220,8 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> {
     private CacheAtomicWriteOrderMode atomicWriteOrderMode;
 
     /** Ordered updates mode. */
-    private boolean atomicOrderedUpdates;
+    // TODO: IGNITE-104 - Switch default to false
+    private boolean atomicOrderedUpdates = true;
 
     /** Number of backups for cache. */
     private int backups = DFLT_BACKUPS;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e18872c7/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java b/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
index 1ed8725..3cf92f8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridTopic.java
@@ -185,10 +185,11 @@ public enum GridTopic {
     /**
      * @param id1 ID1.
      * @param id2 ID2.
+     * @param id3 ID3.
      * @return Grid message topic with specified IDs.
      */
-    public Object topic(int id1, int id2) {
-        return new T9(this, id1, id2);
+    public Object topic(int id1, int id2, byte id3) {
+        return new T9(this, id1, id2, id3);
     }
 
     /**
@@ -577,7 +578,7 @@ public enum GridTopic {
 
         /** {@inheritDoc} */
         @Override public int hashCode() {
-            return topic.ordinal() + id1.hashCode () + (int)(id2 ^ (id2 >>> 32));
+            return topic.ordinal() + id1.hashCode() + (int)(id2 ^ (id2 >>> 32));
         }
 
         /** {@inheritDoc} */
@@ -781,6 +782,9 @@ public enum GridTopic {
         /** */
         private int id2;
 
+        /** */
+        private int id3;
+
         /**
          * No-arg constructor needed for {@link Serializable}.
          */
@@ -792,16 +796,24 @@ public enum GridTopic {
          * @param topic Topic.
          * @param id1 ID1.
          * @param id2 ID2.
+         * @param id3 ID3.
          */
-        private T9(GridTopic topic, int id1, int id2) {
+        private T9(GridTopic topic, int id1, int id2, byte id3) {
             this.topic = topic;
             this.id1 = id1;
             this.id2 = id2;
+            this.id3 = id3;
         }
 
         /** {@inheritDoc} */
         @Override public int hashCode() {
-            return topic.ordinal() + 31 * id1 + 31 * id2;
+            int res = topic.ordinal();
+
+            res += 31 * res + id1;
+            res += 31 * res + id2;
+            res += 31 * res + id3;
+
+            return res;
         }
 
         /** {@inheritDoc} */
@@ -809,7 +821,7 @@ public enum GridTopic {
             if (obj.getClass() == T9.class) {
                 T9 that = (T9)obj;
 
-                return topic == that.topic && id1 == that.id1 && id2 == that.id2;
+                return topic == that.topic && id1 == that.id1 && id2 == that.id2 && id3 == that.id3;
             }
 
             return false;
@@ -820,13 +832,20 @@ public enum GridTopic {
             out.writeByte(topic.ordinal());
             out.writeInt(id1);
             out.writeInt(id2);
+            out.writeByte(id3);
         }
 
         /** {@inheritDoc} */
         @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
             topic = fromOrdinal(in.readByte());
-            id1 = in.readByte();
-            id2 = in.readByte();
+            id1 = in.readInt();
+            id2 = in.readInt();
+            id3 = in.readByte();
+        }
+
+        /** {@inheritDoc} */
+        @Override public String toString() {
+            return S.toString(T9.class, this);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e18872c7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
index b0edc3c..53ec67a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
@@ -1755,9 +1755,9 @@ public class GridCacheUtils {
      * @param part Partition.
      * @return Per-partition message topic.
      */
-    public static Object partitionMassageTopic(GridCacheContext ctx, int part) {
+    public static Object partitionMessageTopic(GridCacheContext ctx, int part, boolean nearMsg) {
         assert part >= 0;
 
-        return TOPIC_CACHE.topic(ctx.cacheId(), part);
+        return TOPIC_CACHE.topic(ctx.cacheId(), part, (byte)(nearMsg ? 1 : 0));
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e18872c7/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 38073f3..bdaa994 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
@@ -183,7 +183,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
 
         if (ctx.config().isAtomicOrderedUpdates()) {
             for (int part = 0; part < ctx.affinity().partitions(); part++) {
-                ctx.io().addOrderedHandler(CU.partitionMassageTopic(ctx, part), new CI2<UUID, GridNearAtomicUpdateRequest>() {
+                ctx.io().addOrderedHandler(CU.partitionMessageTopic(ctx, part, true), new CI2<UUID, GridNearAtomicUpdateRequest>() {
                     @Override public void apply(UUID nodeId, GridNearAtomicUpdateRequest req) {
                         processNearAtomicUpdateRequest(nodeId, req);
                     }
@@ -206,7 +206,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
 
         if (ctx.config().isAtomicOrderedUpdates()) {
             for (int part = 0; part < ctx.affinity().partitions(); part++) {
-                ctx.io().addOrderedHandler(CU.partitionMassageTopic(ctx, part), new CI2<UUID, GridDhtAtomicUpdateRequest>() {
+                ctx.io().addOrderedHandler(CU.partitionMessageTopic(ctx, part, false), new CI2<UUID, GridDhtAtomicUpdateRequest>() {
                     @Override public void apply(UUID nodeId, GridDhtAtomicUpdateRequest req) {
                         processDhtAtomicUpdateRequest(nodeId, req);
                     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e18872c7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
index f7e574d..80c97d5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
@@ -350,7 +350,7 @@ public class GridDhtAtomicUpdateFuture extends GridFutureAdapter<Void>
                         log.debug("Sending DHT atomic update request [nodeId=" + req.nodeId() + ", req=" + req + ']');
 
                     if (mappingKey.part >= 0) {
-                        Object topic = CU.partitionMassageTopic(cctx, mappingKey.part);
+                        Object topic = CU.partitionMessageTopic(cctx, mappingKey.part, false);
 
                         cctx.io().sendOrderedMessage(mappingKey.nodeId, topic, req, cctx.ioPolicy(), 0);
                     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e18872c7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git 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
index 63818f2..9e46806 100644
--- 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
@@ -1143,7 +1143,7 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
      */
     private void sendRequest(MappingKey mappingKey, GridNearAtomicUpdateRequest req) throws IgniteCheckedException {
         if (mappingKey.part >= 0) {
-            Object topic = CU.partitionMassageTopic(cctx, mappingKey.part);
+            Object topic = CU.partitionMessageTopic(cctx, mappingKey.part, true);
 
             cctx.io().sendOrderedMessage(mappingKey.nodeId, topic, req, cctx.ioPolicy(), 0);
         }


[2/2] incubator-ignite git commit: IGNITE-104 - Ordered ATOMIC updates

Posted by vk...@apache.org.
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/825fbc9e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/825fbc9e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/825fbc9e

Branch: refs/heads/ignite-104
Commit: 825fbc9e47e2f4d21f350e08e78c8ffd7db23d96
Parents: e18872c
Author: Valentin Kulichenko <vk...@gridgain.com>
Authored: Tue Jul 21 19:42:09 2015 -0700
Committer: Valentin Kulichenko <vk...@gridgain.com>
Committed: Tue Jul 21 19:42:09 2015 -0700

----------------------------------------------------------------------
 .../cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java   | 3 ++-
 .../cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java  | 3 ++-
 modules/core/src/main/resources/META-INF/classnames.properties    | 1 +
 3 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/825fbc9e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
index 80c97d5..7100d3d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateFuture.java
@@ -352,7 +352,8 @@ public class GridDhtAtomicUpdateFuture extends GridFutureAdapter<Void>
                     if (mappingKey.part >= 0) {
                         Object topic = CU.partitionMessageTopic(cctx, mappingKey.part, false);
 
-                        cctx.io().sendOrderedMessage(mappingKey.nodeId, topic, req, cctx.ioPolicy(), 0);
+                        cctx.io().sendOrderedMessage(mappingKey.nodeId, topic, req, cctx.ioPolicy(),
+                            2 * cctx.gridConfig().getNetworkTimeout());
                     }
                     else {
                         assert mappingKey.part == -1;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/825fbc9e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git 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
index 9e46806..ef3a18b 100644
--- 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
@@ -1145,7 +1145,8 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
         if (mappingKey.part >= 0) {
             Object topic = CU.partitionMessageTopic(cctx, mappingKey.part, true);
 
-            cctx.io().sendOrderedMessage(mappingKey.nodeId, topic, req, cctx.ioPolicy(), 0);
+            cctx.io().sendOrderedMessage(mappingKey.nodeId, topic, req, cctx.ioPolicy(),
+                2 * cctx.gridConfig().getNetworkTimeout());
         }
         else {
             assert mappingKey.part == -1;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/825fbc9e/modules/core/src/main/resources/META-INF/classnames.properties
----------------------------------------------------------------------
diff --git a/modules/core/src/main/resources/META-INF/classnames.properties b/modules/core/src/main/resources/META-INF/classnames.properties
index b3eed46..df4873a 100644
--- a/modules/core/src/main/resources/META-INF/classnames.properties
+++ b/modules/core/src/main/resources/META-INF/classnames.properties
@@ -185,6 +185,7 @@ org.apache.ignite.internal.GridTopic$T5
 org.apache.ignite.internal.GridTopic$T6
 org.apache.ignite.internal.GridTopic$T7
 org.apache.ignite.internal.GridTopic$T8
+org.apache.ignite.internal.GridTopic$T9
 org.apache.ignite.internal.IgniteComponentType
 org.apache.ignite.internal.IgniteComputeImpl
 org.apache.ignite.internal.IgniteDeploymentCheckedException