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