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/03/14 08:00:27 UTC
[08/38] ignite git commit: ignite-4768
ignite-4768
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/7dcd6cdd
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/7dcd6cdd
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/7dcd6cdd
Branch: refs/heads/ignite-4768
Commit: 7dcd6cdd30e3b1aac165ce7f476c12367aed09f2
Parents: 43429ff
Author: sboikov <sb...@gridgain.com>
Authored: Thu Mar 9 10:55:59 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Mar 9 10:55:59 2017 +0300
----------------------------------------------------------------------
.../GridDistributedTxPrepareRequest.java | 12 ++++----
.../cache/distributed/dht/GridDhtTxLocal.java | 14 ++++-----
.../distributed/dht/GridDhtTxPrepareFuture.java | 10 ++++---
.../dht/GridDhtTxPrepareRequest.java | 12 +++++++-
.../colocated/GridDhtColocatedLockFuture.java | 18 ++++++++----
.../distributed/near/GridNearLockFuture.java | 20 +++++++------
.../distributed/near/GridNearLockRequest.java | 10 +++----
.../distributed/near/GridNearLockResponse.java | 12 ++++----
...arOptimisticSerializableTxPrepareFuture.java | 19 +++++++------
.../near/GridNearOptimisticTxPrepareFuture.java | 20 +++++++++----
.../GridNearPessimisticTxPrepareFuture.java | 30 +++++++++++---------
.../cache/distributed/near/GridNearTxLocal.java | 2 +-
.../near/GridNearTxPrepareRequest.java | 15 +++++-----
.../near/GridNearTxPrepareResponse.java | 13 ++++-----
14 files changed, 122 insertions(+), 85 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
index 1934a84..e30c456 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
@@ -75,7 +75,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
private static final int SYSTEM_TX_FLAG_MASK = 0x10;
/** */
- private static final int KNOWN_MAPPING_FLAG_MASK = 0x20;
+ private static final int MAPPING_KNOWN_FLAG_MASK = 0x20;
/** Collection to message converter. */
private static final C1<Collection<UUID>, UUIDCollectionMessage> COL_TO_MSG = new C1<Collection<UUID>, UUIDCollectionMessage>() {
@@ -177,6 +177,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
@Nullable Collection<IgniteTxEntry> reads,
Collection<IgniteTxEntry> writes,
Map<UUID, Collection<UUID>> txNodes,
+ boolean mappingKnown,
boolean retVal,
boolean last,
boolean onePhaseCommit,
@@ -197,14 +198,15 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage
this.txNodes = txNodes;
setFlag(tx.system(), SYSTEM_TX_FLAG_MASK);
-
setFlag(retVal, NEED_RETURN_VALUE_FLAG_MASK);
-
setFlag(tx.isInvalidate(), INVALIDATE_FLAG_MASK);
-
setFlag(onePhaseCommit, ONE_PHASE_COMMIT_FLAG_MASK);
-
setFlag(last, LAST_REQ_FLAG_MASK);
+ setFlag(mappingKnown, MAPPING_KNOWN_FLAG_MASK);
+ }
+
+ public final boolean mappingKnown() {
+ return isFlag(MAPPING_KNOWN_FLAG_MASK);
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocal.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocal.java
index 7199ede..79c371c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocal.java
@@ -72,7 +72,7 @@ public class GridDhtTxLocal extends GridDhtTxLocalAdapter implements GridCacheMa
private IgniteUuid nearFutId;
/** Near future ID. */
- private IgniteUuid nearMiniId;
+ private int nearMiniId;
/** Near future ID. */
private IgniteUuid nearFinFutId;
@@ -121,7 +121,7 @@ public class GridDhtTxLocal extends GridDhtTxLocalAdapter implements GridCacheMa
UUID nearNodeId,
GridCacheVersion nearXidVer,
IgniteUuid nearFutId,
- IgniteUuid nearMiniId,
+ int nearMiniId,
long nearThreadId,
boolean implicit,
boolean implicitSingle,
@@ -159,7 +159,7 @@ public class GridDhtTxLocal extends GridDhtTxLocalAdapter implements GridCacheMa
assert nearNodeId != null;
assert nearFutId != null;
- assert nearMiniId != null;
+ assert nearMiniId != 0;
assert nearXidVer != null;
this.nearNodeId = nearNodeId;
@@ -394,7 +394,7 @@ public class GridDhtTxLocal extends GridDhtTxLocalAdapter implements GridCacheMa
@Nullable Collection<IgniteTxEntry> writes,
Map<IgniteTxKey, GridCacheVersion> verMap,
long msgId,
- IgniteUuid nearMiniId,
+ int nearMiniId,
Map<UUID, Collection<UUID>> txNodes,
boolean last
) {
@@ -417,7 +417,7 @@ public class GridDhtTxLocal extends GridDhtTxLocalAdapter implements GridCacheMa
needReturnValue()))) {
GridDhtTxPrepareFuture f = prepFut;
- assert f.nearMiniId().equals(nearMiniId) : "Wrong near mini id on existing future " +
+ assert f.nearMiniId() == nearMiniId : "Wrong near mini id on existing future " +
"[futMiniId=" + f.nearMiniId() + ", miniId=" + nearMiniId + ", fut=" + f + ']';
if (timeout == -1)
@@ -427,7 +427,7 @@ public class GridDhtTxLocal extends GridDhtTxLocalAdapter implements GridCacheMa
}
}
else {
- assert fut.nearMiniId().equals(nearMiniId) : "Wrong near mini id on existing future " +
+ assert fut.nearMiniId() == nearMiniId : "Wrong near mini id on existing future " +
"[futMiniId=" + fut.nearMiniId() + ", miniId=" + nearMiniId + ", fut=" + fut + ']';
// Prepare was called explicitly.
@@ -626,7 +626,7 @@ public class GridDhtTxLocal extends GridDhtTxLocalAdapter implements GridCacheMa
"Invalid state [nearFinFutId=" + nearFinFutId + ", isInvalidate=" + isInvalidate() + ", commit=" + commit +
", sysInvalidate=" + isSystemInvalidate() + ", state=" + state() + ']';
- assert nearMiniId != null;
+ assert nearMiniId != 0;
return super.finish(commit);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index 84b8e7a..dd882f9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@ -177,7 +177,7 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
private boolean trackable = true;
/** Near mini future id. */
- private IgniteUuid nearMiniId;
+ private int nearMiniId;
/** DHT versions map. */
private Map<IgniteTxKey, GridCacheVersion> dhtVerMap;
@@ -223,7 +223,7 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
GridCacheSharedContext cctx,
final GridDhtTxLocalAdapter tx,
long timeout,
- IgniteUuid nearMiniId,
+ int nearMiniId,
Map<IgniteTxKey, GridCacheVersion> dhtVerMap,
boolean last,
boolean retVal
@@ -263,7 +263,7 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
/**
* @return Near mini future id.
*/
- public IgniteUuid nearMiniId() {
+ int nearMiniId() {
return nearMiniId;
}
@@ -858,7 +858,7 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
GridNearTxPrepareResponse res = new GridNearTxPrepareResponse(
tx.nearXidVersion(),
tx.colocated() ? tx.xid() : tx.nearFutureId(),
- nearMiniId == null ? tx.xid() : nearMiniId,
+ nearMiniId,
tx.xidVersion(),
tx.writeVersion(),
ret,
@@ -1273,6 +1273,7 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
nearWrites,
txNodes,
tx.nearXidVersion(),
+ false,
true,
tx.onePhaseCommit(),
tx.subjectId(),
@@ -1385,6 +1386,7 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
nearMapping.writes(),
tx.transactionNodes(),
tx.nearXidVersion(),
+ false,
true,
tx.onePhaseCommit(),
tx.subjectId(),
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
index 4c8a22d..e55d189 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
@@ -128,13 +128,23 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
Collection<IgniteTxEntry> nearWrites,
Map<UUID, Collection<UUID>> txNodes,
GridCacheVersion nearXidVer,
+ boolean mappingKnown,
boolean last,
boolean onePhaseCommit,
UUID subjId,
int taskNameHash,
boolean addDepInfo,
boolean retVal) {
- super(tx, timeout, null, dhtWrites, txNodes, retVal, last, onePhaseCommit, addDepInfo);
+ super(tx,
+ timeout,
+ null,
+ dhtWrites,
+ txNodes,
+ mappingKnown,
+ retVal,
+ last,
+ onePhaseCommit,
+ addDepInfo);
assert futId != null;
assert miniId != null;
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
index 79ca108..0ce380d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
@@ -160,6 +160,9 @@ public final class GridDhtColocatedLockFuture extends GridCompoundIdentityFuture
/** Keep binary. */
private final boolean keepBinary;
+ /** */
+ private int miniId;
+
/**
* @param cctx Registry.
* @param keys Keys to lock.
@@ -485,7 +488,7 @@ public final class GridDhtColocatedLockFuture extends GridCompoundIdentityFuture
* @return Mini future.
*/
@SuppressWarnings({"ForLoopReplaceableByForEach", "IfMayBeConditional"})
- private MiniFuture miniFuture(IgniteUuid miniId) {
+ private MiniFuture miniFuture(int miniId) {
// We iterate directly over the futs collection here to avoid copy.
synchronized (sync) {
int size = futuresCountNoLock();
@@ -499,7 +502,7 @@ public final class GridDhtColocatedLockFuture extends GridCompoundIdentityFuture
MiniFuture mini = (MiniFuture)fut;
- if (mini.futureId().equals(miniId)) {
+ if (mini.futureId() == miniId) {
if (!mini.isDone())
return mini;
else
@@ -1049,7 +1052,7 @@ public final class GridDhtColocatedLockFuture extends GridCompoundIdentityFuture
if (node.isLocal())
lockLocally(mappedKeys, req.topologyVersion());
else {
- final MiniFuture fut = new MiniFuture(node, mappedKeys);
+ final MiniFuture fut = new MiniFuture(node, mappedKeys, ++miniId);
req.miniId(fut.futureId());
@@ -1393,7 +1396,7 @@ public final class GridDhtColocatedLockFuture extends GridCompoundIdentityFuture
private static final long serialVersionUID = 0L;
/** */
- private final IgniteUuid futId = IgniteUuid.randomUuid();
+ private final int futId;
/** Node ID. */
@GridToStringExclude
@@ -1409,19 +1412,22 @@ public final class GridDhtColocatedLockFuture extends GridCompoundIdentityFuture
/**
* @param node Node.
* @param keys Keys.
+ * @param futId Mini future ID.
*/
MiniFuture(
ClusterNode node,
- Collection<KeyCacheObject> keys
+ Collection<KeyCacheObject> keys,
+ int futId
) {
this.node = node;
this.keys = keys;
+ this.futId = futId;
}
/**
* @return Future ID.
*/
- IgniteUuid futureId() {
+ int futureId() {
return futId;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
index d3e3a15..7b19884 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
@@ -164,6 +164,9 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
/** Keep binary context flag. */
private final boolean keepBinary;
+ /** */
+ private int miniId;
+
/**
* @param cctx Registry.
* @param keys Keys to lock.
@@ -532,7 +535,7 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
* @return Mini future.
*/
@SuppressWarnings({"ForLoopReplaceableByForEach", "IfMayBeConditional"})
- private MiniFuture miniFuture(IgniteUuid miniId) {
+ private MiniFuture miniFuture(int miniId) {
// We iterate directly over the futs collection here to avoid copy.
synchronized (sync) {
int size = futuresCountNoLock();
@@ -546,7 +549,7 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
MiniFuture mini = (MiniFuture)fut;
- if (mini.futureId().equals(miniId)) {
+ if (mini.futureId() == miniId) {
if (!mini.isDone())
return mini;
else
@@ -1178,8 +1181,6 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
req.filter(filter, cctx);
if (node.isLocal()) {
- req.miniId(IgniteUuid.randomUuid());
-
if (log.isDebugEnabled())
log.debug("Before locally locking near request: " + req);
@@ -1316,7 +1317,7 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
fut));
}
else {
- final MiniFuture fut = new MiniFuture(node, mappedKeys);
+ final MiniFuture fut = new MiniFuture(node, mappedKeys, ++miniId);
req.miniId(fut.futureId());
@@ -1489,7 +1490,7 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
private static final long serialVersionUID = 0L;
/** */
- private final IgniteUuid futId = IgniteUuid.randomUuid();
+ private final int futId;
/** Node ID. */
@GridToStringExclude
@@ -1505,19 +1506,22 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
/**
* @param node Node.
* @param keys Keys.
+ * @param futId Mini future ID.
*/
MiniFuture(
ClusterNode node,
- Collection<KeyCacheObject> keys
+ Collection<KeyCacheObject> keys,
+ int futId
) {
this.node = node;
this.keys = keys;
+ this.futId = futId;
}
/**
* @return Future ID.
*/
- IgniteUuid futureId() {
+ int futureId() {
return futId;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
index 3091b45..229961e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
@@ -50,7 +50,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
private AffinityTopologyVersion topVer;
/** Mini future ID. */
- private IgniteUuid miniId;
+ private int miniId;
/** Filter. */
private CacheEntryPredicate[] filter;
@@ -256,14 +256,14 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
/**
* @return Mini future ID.
*/
- public IgniteUuid miniId() {
+ public int miniId() {
return miniId;
}
/**
* @param miniId Mini future Id.
*/
- public void miniId(IgniteUuid miniId) {
+ public void miniId(int miniId) {
this.miniId = miniId;
}
@@ -423,7 +423,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
writer.incrementState();
case 28:
- if (!writer.writeIgniteUuid("miniId", miniId))
+ if (!writer.writeInt("miniId", miniId))
return false;
writer.incrementState();
@@ -545,7 +545,7 @@ public class GridNearLockRequest extends GridDistributedLockRequest {
reader.incrementState();
case 28:
- miniId = reader.readIgniteUuid("miniId");
+ miniId = reader.readInt("miniId");
if (!reader.isLastRead())
return false;
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
index e48a098..b10591d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
@@ -47,7 +47,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
private Collection<GridCacheVersion> pending;
/** */
- private IgniteUuid miniId;
+ private int miniId;
/** DHT versions. */
@GridToStringInclude
@@ -85,7 +85,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
int cacheId,
GridCacheVersion lockVer,
IgniteUuid futId,
- IgniteUuid miniId,
+ int miniId,
boolean filterRes,
int cnt,
Throwable err,
@@ -94,7 +94,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
) {
super(cacheId, lockVer, futId, cnt, err, addDepInfo);
- assert miniId != null;
+ assert miniId != 0;
this.miniId = miniId;
this.clientRemapVer = clientRemapVer;
@@ -134,7 +134,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
/**
* @return Mini future ID.
*/
- public IgniteUuid miniId() {
+ public int miniId() {
return miniId;
}
@@ -233,7 +233,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
writer.incrementState();
case 14:
- if (!writer.writeIgniteUuid("miniId", miniId))
+ if (!writer.writeInt("miniId", miniId))
return false;
writer.incrementState();
@@ -293,7 +293,7 @@ public class GridNearLockResponse extends GridDistributedLockResponse {
reader.incrementState();
case 14:
- miniId = reader.readIgniteUuid("miniId");
+ miniId = reader.readInt("miniId");
if (!reader.isLastRead())
return false;
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java
index e450d4b..7b130d2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java
@@ -56,9 +56,7 @@ import org.apache.ignite.internal.util.typedef.X;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteBiTuple;
-import org.apache.ignite.lang.IgniteProductVersion;
import org.apache.ignite.lang.IgniteReducer;
-import org.apache.ignite.lang.IgniteUuid;
import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.internal.processors.cache.GridCacheOperation.TRANSFORM;
@@ -224,7 +222,7 @@ public class GridNearOptimisticSerializableTxPrepareFuture extends GridNearOptim
* @return Mini future.
*/
@SuppressWarnings("ForLoopReplaceableByForEach")
- private MiniFuture miniFuture(IgniteUuid miniId) {
+ private MiniFuture miniFuture(long miniId) {
// We iterate directly over the futs collection here to avoid copy.
synchronized (sync) {
int size = futuresCountNoLock();
@@ -238,7 +236,7 @@ public class GridNearOptimisticSerializableTxPrepareFuture extends GridNearOptim
MiniFuture mini = (MiniFuture)fut;
- if (mini.futureId().equals(miniId)) {
+ if (mini.futureId() == miniId) {
if (!mini.isDone())
return mini;
else
@@ -364,10 +362,12 @@ public class GridNearOptimisticSerializableTxPrepareFuture extends GridNearOptim
checkOnePhase();
+ int miniId = 0;
+
for (GridDistributedTxMapping m : mappings.values()) {
assert !m.empty();
- add(new MiniFuture(this, m));
+ add(new MiniFuture(this, m, ++miniId));
}
Collection<IgniteInternalFuture<?>> futs = (Collection)futures();
@@ -442,6 +442,7 @@ public class GridNearOptimisticSerializableTxPrepareFuture extends GridNearOptim
m.writes(),
m.near(),
txMapping.transactionNodes(),
+ false,
m.last(),
tx.onePhaseCommit(),
tx.needReturnValue() && tx.implicit(),
@@ -687,7 +688,7 @@ public class GridNearOptimisticSerializableTxPrepareFuture extends GridNearOptim
AtomicIntegerFieldUpdater.newUpdater(MiniFuture.class, "rcvRes");
/** */
- private final IgniteUuid futId = IgniteUuid.randomUuid();
+ private final int futId;
/** Parent future. */
private final GridNearOptimisticSerializableTxPrepareFuture parent;
@@ -703,16 +704,18 @@ public class GridNearOptimisticSerializableTxPrepareFuture extends GridNearOptim
/**
* @param parent Parent future.
* @param m Mapping.
+ * @param futId Mini future ID.
*/
- MiniFuture(GridNearOptimisticSerializableTxPrepareFuture parent, GridDistributedTxMapping m) {
+ MiniFuture(GridNearOptimisticSerializableTxPrepareFuture parent, GridDistributedTxMapping m, int futId) {
this.parent = parent;
this.m = m;
+ this.futId = futId;
}
/**
* @return Future ID.
*/
- IgniteUuid futureId() {
+ int futureId() {
return futId;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
index a2cb182..3428bd1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
@@ -75,6 +75,9 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearOptimisticTxPrepa
@GridToStringExclude
private KeyLockFuture keyLockFut;
+ /** */
+ private int miniId;
+
/**
* @param cctx Context.
* @param tx Transaction.
@@ -232,7 +235,7 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearOptimisticTxPrepa
* @return Mini future.
*/
@SuppressWarnings("ForLoopReplaceableByForEach")
- private MiniFuture miniFuture(IgniteUuid miniId) {
+ private MiniFuture miniFuture(int miniId) {
// We iterate directly over the futs collection here to avoid copy.
synchronized (sync) {
int size = futuresCountNoLock();
@@ -246,7 +249,7 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearOptimisticTxPrepa
MiniFuture mini = (MiniFuture)fut;
- if (mini.futureId().equals(miniId)) {
+ if (mini.futureId() == miniId) {
if (!mini.isDone())
return mini;
else
@@ -494,6 +497,7 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearOptimisticTxPrepa
m.writes(),
m.near(),
txMapping.transactionNodes(),
+ false,
m.last(),
tx.onePhaseCommit(),
tx.needReturnValue() && tx.implicit(),
@@ -521,7 +525,7 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearOptimisticTxPrepa
}
}
- final MiniFuture fut = new MiniFuture(this, m, mappings);
+ final MiniFuture fut = new MiniFuture(this, m, ++miniId, mappings);
req.miniId(fut.futureId());
@@ -771,7 +775,7 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearOptimisticTxPrepa
private final GridNearOptimisticTxPrepareFuture parent;
/** */
- private final IgniteUuid futId = IgniteUuid.randomUuid();
+ private final int futId;
/** Keys. */
@GridToStringInclude
@@ -787,19 +791,23 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearOptimisticTxPrepa
/**
* @param parent Parent.
* @param m Mapping.
+ * @param futId Mini future ID.
* @param mappings Queue of mappings to proceed with.
*/
- MiniFuture(GridNearOptimisticTxPrepareFuture parent, GridDistributedTxMapping m,
+ MiniFuture(GridNearOptimisticTxPrepareFuture parent,
+ GridDistributedTxMapping m,
+ int futId,
Queue<GridDistributedTxMapping> mappings) {
this.parent = parent;
this.m = m;
+ this.futId = futId;
this.mappings = mappings;
}
/**
* @return Future ID.
*/
- IgniteUuid futureId() {
+ int futureId() {
return futId;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
index 4154102..05f3931 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
@@ -45,7 +45,6 @@ import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteBiTuple;
-import org.apache.ignite.lang.IgniteUuid;
import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.internal.processors.cache.GridCacheOperation.TRANSFORM;
@@ -78,7 +77,7 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA
for (IgniteInternalFuture<?> fut : futures()) {
MiniFuture f = (MiniFuture)fut;
- if (f.node().id().equals(nodeId)) {
+ if (f.primary().id().equals(nodeId)) {
ClusterTopologyCheckedException e = new ClusterTopologyCheckedException("Remote node left grid: " +
nodeId);
@@ -101,7 +100,7 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA
MiniFuture f = miniFuture(res.miniId());
if (f != null) {
- assert f.node().id().equals(nodeId);
+ assert f.primary().id().equals(nodeId);
f.onResult(res);
}
@@ -131,16 +130,16 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA
* @return Mini future.
*/
@SuppressWarnings("ForLoopReplaceableByForEach")
- private MiniFuture miniFuture(IgniteUuid miniId) {
+ private MiniFuture miniFuture(int miniId) {
// We iterate directly over the futs collection here to avoid copy.
synchronized (sync) {
int size = futuresCountNoLock();
// Avoid iterator creation.
for (int i = 0; i < size; i++) {
- MiniFuture mini = (MiniFuture) future(i);
+ MiniFuture mini = (MiniFuture)future(i);
- if (mini.futureId().equals(miniId)) {
+ if (mini.futureId() == miniId) {
if (!mini.isDone())
return mini;
else
@@ -246,6 +245,8 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA
return;
}
+ int miniId = 0;
+
for (final GridDistributedTxMapping m : mappings.values()) {
final ClusterNode node = m.node();
@@ -258,6 +259,7 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA
m.writes(),
m.near(),
txMapping.transactionNodes(),
+ mappingKnown,
true,
tx.onePhaseCommit(),
tx.needReturnValue() && tx.implicit(),
@@ -273,7 +275,7 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA
req.addDhtVersion(txEntry.txKey(), null);
}
- final MiniFuture fut = new MiniFuture(m);
+ final MiniFuture fut = new MiniFuture(m, ++miniId);
req.miniId(fut.futureId());
@@ -353,8 +355,8 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA
@Override public String toString() {
Collection<String> futs = F.viewReadOnly(futures(), new C1<IgniteInternalFuture<?>, String>() {
@Override public String apply(IgniteInternalFuture<?> f) {
- return "[node=" + ((MiniFuture)f).node().id() +
- ", loc=" + ((MiniFuture)f).node().isLocal() +
+ return "[node=" + ((MiniFuture)f).primary().id() +
+ ", loc=" + ((MiniFuture)f).primary().isLocal() +
", done=" + f.isDone() + "]";
}
});
@@ -372,29 +374,31 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA
private static final long serialVersionUID = 0L;
/** */
- private final IgniteUuid futId = IgniteUuid.randomUuid();
+ private final int futId;
/** */
private GridDistributedTxMapping m;
/**
* @param m Mapping.
+ * @param futId Mini future ID.
*/
- MiniFuture(GridDistributedTxMapping m) {
+ MiniFuture(GridDistributedTxMapping m, int futId) {
this.m = m;
+ this.futId = futId;
}
/**
* @return Future ID.
*/
- IgniteUuid futureId() {
+ int futureId() {
return futId;
}
/**
* @return Node ID.
*/
- public ClusterNode node() {
+ public ClusterNode primary() {
return m.node();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index 197792b..0dede22 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -1000,7 +1000,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter {
cctx,
this,
timeout,
- IgniteUuid.randomUuid(),
+ 0,
Collections.<IgniteTxKey, GridCacheVersion>emptyMap(),
last,
needReturnValue() && implicit());
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
index 86f7060..3eff9e5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
@@ -23,17 +23,14 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
import java.util.UUID;
-import org.apache.ignite.internal.GridDirectCollection;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
import org.apache.ignite.internal.processors.cache.GridCacheContext;
import org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxPrepareRequest;
import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry;
-import org.apache.ignite.internal.util.tostring.GridToStringInclude;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.lang.IgniteUuid;
-import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType;
import org.apache.ignite.plugin.extensions.communication.MessageReader;
import org.apache.ignite.plugin.extensions.communication.MessageWriter;
import org.jetbrains.annotations.Nullable;
@@ -61,7 +58,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
private IgniteUuid futId;
/** Mini future ID. */
- private IgniteUuid miniId;
+ private int miniId;
/** Topology version. */
private AffinityTopologyVersion topVer;
@@ -110,6 +107,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
Collection<IgniteTxEntry> writes,
boolean near,
Map<UUID, Collection<UUID>> txNodes,
+ boolean mappingKnown,
boolean last,
boolean onePhaseCommit,
boolean retVal,
@@ -125,6 +123,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
reads,
writes,
txNodes,
+ mappingKnown,
retVal,
last,
onePhaseCommit,
@@ -168,14 +167,14 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
/**
* @return Mini future ID.
*/
- public IgniteUuid miniId() {
+ public int miniId() {
return miniId;
}
/**
* @param miniId Mini future ID.
*/
- public void miniId(IgniteUuid miniId) {
+ public void miniId(int miniId) {
this.miniId = miniId;
}
@@ -301,7 +300,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
writer.incrementState();
case 22:
- if (!writer.writeIgniteUuid("miniId", miniId))
+ if (!writer.writeInt("miniId", miniId))
return false;
writer.incrementState();
@@ -357,7 +356,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
reader.incrementState();
case 22:
- miniId = reader.readIgniteUuid("miniId");
+ miniId = reader.readInt("miniId");
if (!reader.isLastRead())
return false;
http://git-wip-us.apache.org/repos/asf/ignite/blob/7dcd6cdd/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
index a374bdc..9dad722 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
@@ -61,7 +61,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
private IgniteUuid futId;
/** Mini future ID. */
- private IgniteUuid miniId;
+ private int miniId;
/** DHT version. */
private GridCacheVersion dhtVer;
@@ -115,7 +115,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
public GridNearTxPrepareResponse(
GridCacheVersion xid,
IgniteUuid futId,
- IgniteUuid miniId,
+ int miniId,
GridCacheVersion dhtVer,
GridCacheVersion writeVer,
GridCacheReturn retVal,
@@ -126,7 +126,6 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
super(xid, err, addDepInfo);
assert futId != null;
- assert miniId != null;
assert dhtVer != null;
this.futId = futId;
@@ -140,7 +139,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
/**
* @return {@code True} if client node should remap transaction.
*/
- @Nullable public AffinityTopologyVersion clientRemapVersion() {
+ @Nullable AffinityTopologyVersion clientRemapVersion() {
return clientRemapVer;
}
@@ -165,7 +164,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
/**
* @return Mini future ID.
*/
- public IgniteUuid miniId() {
+ public int miniId() {
return miniId;
}
@@ -368,7 +367,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
writer.incrementState();
case 12:
- if (!writer.writeIgniteUuid("miniId", miniId))
+ if (!writer.writeInt("miniId", miniId))
return false;
writer.incrementState();
@@ -452,7 +451,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
reader.incrementState();
case 12:
- miniId = reader.readIgniteUuid("miniId");
+ miniId = reader.readInt("miniId");
if (!reader.isLastRead())
return false;