You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dm...@apache.org on 2015/10/07 13:19:17 UTC
ignite git commit: ignite-1272: added 'depEnabled' flag to
GridCacheMessage. Used in cases when 'cacheId' is not set for a
GridCacheMessage for some reason
Repository: ignite
Updated Branches:
refs/heads/ignite-1272 9c93f8bc7 -> 8635693f7
ignite-1272: added 'depEnabled' flag to GridCacheMessage. Used in cases when 'cacheId' is not set for a GridCacheMessage for some reason
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8635693f
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8635693f
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8635693f
Branch: refs/heads/ignite-1272
Commit: 8635693f701f16b19090d97cf5bd9376a9518f5c
Parents: 9c93f8b
Author: Denis Magda <dm...@gridgain.com>
Authored: Wed Oct 7 14:18:56 2015 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Wed Oct 7 14:18:56 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheIoManager.java | 26 ++++++++++++++++----
.../processors/cache/GridCacheMessage.java | 19 ++++++++++++++
.../cache/GridCacheSharedContext.java | 3 +++
.../distributed/GridCacheTxRecoveryRequest.java | 3 ++-
.../GridCacheTxRecoveryResponse.java | 4 ++-
.../GridDistributedTxRemoteAdapter.java | 5 ++++
.../distributed/dht/GridDhtTxFinishFuture.java | 9 ++++---
.../distributed/dht/GridDhtTxFinishRequest.java | 5 +++-
.../dht/GridDhtTxFinishResponse.java | 6 +++--
.../distributed/dht/GridDhtTxPrepareFuture.java | 9 ++++---
.../dht/GridDhtTxPrepareRequest.java | 4 ++-
.../dht/GridDhtTxPrepareResponse.java | 6 +++--
.../GridDhtPartitionsAbstractMessage.java | 5 +++-
.../near/GridNearTxFinishFuture.java | 8 +++---
.../near/GridNearTxFinishRequest.java | 5 +++-
.../near/GridNearTxFinishResponse.java | 4 ++-
.../near/GridNearTxPrepareRequest.java | 3 ++-
.../near/GridNearTxPrepareResponse.java | 7 ++++--
.../cache/transactions/IgniteInternalTx.java | 8 +++++-
.../cache/transactions/IgniteTxAdapter.java | 5 ++++
.../cache/transactions/IgniteTxHandler.java | 13 ++++++----
.../transactions/IgniteTxLocalAdapter.java | 11 +++++++++
22 files changed, 134 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
index 3a5c0c1..dda01af 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
@@ -404,7 +404,8 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
GridDhtTxPrepareResponse res = new GridDhtTxPrepareResponse(
req.version(),
req.futureId(),
- req.miniId());
+ req.miniId(),
+ req.deployInfo() != null);
res.error(req.classError());
@@ -533,7 +534,8 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
req.version(),
null,
null,
- null);
+ null,
+ req.deployInfo() != null);
res.error(req.classError());
@@ -617,10 +619,24 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
if (destNodeId == null || !cctx.localNodeId().equals(destNodeId)) {
msg.prepareMarshal(cctx);
- GridCacheContext ctx = cctx.cacheContext(msg.cacheId());
+ if (depEnabled) {
+ boolean depEnabled0;
+
+ if (msg.deploymentEnabled() != null)
+ depEnabled0 = msg.deploymentEnabled();
+ else {
+ GridCacheContext ctx = cctx.cacheContext(msg.cacheId());
- if (depEnabled && ctx.deploymentEnabled() && msg instanceof GridCacheDeployable)
- cctx.deploy().prepare((GridCacheDeployable)msg);
+ if (ctx == null)
+ throw new IgniteCheckedException("Deployment related info is missing in message: [msg=" +
+ msg +']');
+
+ depEnabled0 = ctx.deploymentEnabled();
+ }
+
+ if (depEnabled0 && msg instanceof GridCacheDeployable)
+ cctx.deploy().prepare((GridCacheDeployable)msg);
+ }
}
return true;
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java
index 7cffd09..c91dfc7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java
@@ -77,6 +77,13 @@ public abstract class GridCacheMessage implements Message {
protected int cacheId;
/**
+ * Deployment enabled flag indicates whether deployment info has to be added to this message.
+ * If the flag is not set use {@link GridCacheMessage#cacheId} to find out this information.
+ */
+ @GridDirectTransient
+ protected Boolean depEnabled;
+
+ /**
* @return Error, if any.
*/
@Nullable public Throwable error() {
@@ -181,6 +188,18 @@ public abstract class GridCacheMessage implements Message {
}
/**
+ * Deployment enabled flag indicates whether deployment info has to be added to this message.
+ * If the flag is not set use {@link #cacheId()} to find out this information.
+ *
+ * @return {@code true} or {@code false} if the deployment is enabled or disabled for all active caches involved
+ * in this message. Returns {@code null} if the flag hasn't been explicitly specified and {@link #cacheId()} has
+ * to be use to find out whether deployment is enabled for a cache or not.
+ */
+ public Boolean deploymentEnabled() {
+ return depEnabled;
+ }
+
+ /**
* @param o Object to prepare for marshalling.
* @param ctx Context.
* @throws IgniteCheckedException If failed.
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
index 13e390a..277c648 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
@@ -590,6 +590,9 @@ public class GridCacheSharedContext<K, V> {
if (store.isWriteBehind() != activeStore.isWriteBehind())
return "caches with different write-behind setting can't be enlisted in one transaction";
+ if (activeCacheCtx.deploymentEnabled() != cacheCtx.deploymentEnabled())
+ return "caches with enabled and disabled deployment modes can't be enlisted in one transaction";
+
// If local and write-behind validations passed, this must be true.
assert store.isWriteToStoreFromDht() == activeStore.isWriteToStoreFromDht();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
index bd6cd88..6efb27c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryRequest.java
@@ -80,6 +80,7 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
this.miniId = miniId;
this.txNum = txNum;
this.nearTxCheck = nearTxCheck;
+ this.depEnabled = tx.activeCachesDeploymentEnabled();
}
/**
@@ -258,4 +259,4 @@ public class GridCacheTxRecoveryRequest extends GridDistributedBaseMessage {
@Override public String toString() {
return S.toString(GridCacheTxRecoveryRequest.class, this, "super", super.toString());
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java
index 8b9550f..af80c4f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java
@@ -64,6 +64,8 @@ public class GridCacheTxRecoveryResponse extends GridDistributedBaseMessage {
this.futId = futId;
this.miniId = miniId;
this.success = success;
+
+ this.depEnabled = false;
}
/**
@@ -179,4 +181,4 @@ public class GridCacheTxRecoveryResponse extends GridDistributedBaseMessage {
@Override public String toString() {
return S.toString(GridCacheTxRecoveryResponse.class, this, "super", super.toString());
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
index f969737..aa16a5f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
@@ -192,6 +192,11 @@ public class GridDistributedTxRemoteAdapter extends IgniteTxAdapter
return Collections.emptyList();
}
+ /** {@inheritDoc} */
+ @Nullable @Override public Boolean activeCachesDeploymentEnabled() {
+ return null;
+ }
+
/**
* @return Checks if transaction has no entries.
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
index 79bccc2..992bd66 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java
@@ -320,7 +320,8 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
tx.pendingVersions(),
tx.size(),
tx.subjectId(),
- tx.taskNameHash());
+ tx.taskNameHash(),
+ tx.activeCachesDeploymentEnabled());
try {
cctx.io().send(n, req, tx.ioPolicy());
@@ -397,7 +398,8 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
tx.pendingVersions(),
tx.size(),
tx.subjectId(),
- tx.taskNameHash());
+ tx.taskNameHash(),
+ tx.activeCachesDeploymentEnabled());
req.writeVersion(tx.writeVersion() != null ? tx.writeVersion() : tx.xidVersion());
@@ -450,7 +452,8 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCompoundIdentityFutur
tx.pendingVersions(),
tx.size(),
tx.subjectId(),
- tx.taskNameHash());
+ tx.taskNameHash(),
+ tx.activeCachesDeploymentEnabled());
req.writeVersion(tx.writeVersion());
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
index f859314..4f395e0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
@@ -104,6 +104,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
* @param txSize Expected transaction size.
* @param subjId Subject ID.
* @param taskNameHash Task name hash.
+ * @param depEnabled Deployment enabled flag.
*/
public GridDhtTxFinishRequest(
UUID nearNodeId,
@@ -127,7 +128,8 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
Collection<GridCacheVersion> pendingVers,
int txSize,
@Nullable UUID subjId,
- int taskNameHash
+ int taskNameHash,
+ boolean depEnabled
) {
super(
xidVer,
@@ -157,6 +159,7 @@ public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
this.sysInvalidate = sysInvalidate;
this.subjId = subjId;
this.taskNameHash = taskNameHash;
+ this.depEnabled = depEnabled;
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
index ec0f234..9c78aeb 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
@@ -61,13 +61,15 @@ public class GridDhtTxFinishResponse extends GridDistributedTxFinishResponse {
* @param xid Xid version.
* @param futId Future ID.
* @param miniId Mini future ID.
+ * @param depEnabled Deployment enabled.
*/
- public GridDhtTxFinishResponse(GridCacheVersion xid, IgniteUuid futId, IgniteUuid miniId) {
+ public GridDhtTxFinishResponse(GridCacheVersion xid, IgniteUuid futId, IgniteUuid miniId, boolean depEnabled) {
super(xid, futId);
assert miniId != null;
this.miniId = miniId;
+ this.depEnabled = depEnabled;
}
/**
@@ -214,4 +216,4 @@ public class GridDhtTxFinishResponse extends GridDistributedTxFinishResponse {
@Override public byte fieldsCount() {
return 8;
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/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 81cc272..82c6152 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
@@ -666,7 +666,8 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
tx.writeVersion(),
ret,
prepErr,
- null);
+ null,
+ tx.activeCachesDeploymentEnabled());
if (prepErr == null) {
addDhtValues(res);
@@ -972,7 +973,8 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
true,
tx.onePhaseCommit(),
tx.subjectId(),
- tx.taskNameHash());
+ tx.taskNameHash(),
+ tx.activeCachesDeploymentEnabled());
int idx = 0;
@@ -1071,7 +1073,8 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
true,
tx.onePhaseCommit(),
tx.subjectId(),
- tx.taskNameHash());
+ tx.taskNameHash(),
+ tx.activeCachesDeploymentEnabled());
for (IgniteTxEntry entry : nearMapping.writes()) {
try {
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/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 f0da09c..8f2f717 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
@@ -131,7 +131,8 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
boolean last,
boolean onePhaseCommit,
UUID subjId,
- int taskNameHash) {
+ int taskNameHash,
+ boolean depEnabled) {
super(tx, null, dhtWrites, txNodes, onePhaseCommit);
assert futId != null;
@@ -145,6 +146,7 @@ public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
this.last = last;
this.subjId = subjId;
this.taskNameHash = taskNameHash;
+ this.depEnabled = depEnabled;
invalidateNearEntries = new BitSet(dhtWrites == null ? 0 : dhtWrites.size());
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
index d903165..b0a2475 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
@@ -84,8 +84,9 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
* @param xid Xid version.
* @param futId Future ID.
* @param miniId Mini future ID.
+ * @param depEnabled Deployment enabled.
*/
- public GridDhtTxPrepareResponse(GridCacheVersion xid, IgniteUuid futId, IgniteUuid miniId) {
+ public GridDhtTxPrepareResponse(GridCacheVersion xid, IgniteUuid futId, IgniteUuid miniId, boolean depEnabled) {
super(xid);
assert futId != null;
@@ -93,6 +94,7 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
this.futId = futId;
this.miniId = miniId;
+ this.depEnabled = depEnabled;
}
/**
@@ -367,4 +369,4 @@ public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse {
@Override public byte fieldsCount() {
return 14;
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
index cc7d439..c01eddb 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
@@ -53,6 +53,9 @@ abstract class GridDhtPartitionsAbstractMessage extends GridCacheMessage {
GridDhtPartitionsAbstractMessage(GridDhtPartitionExchangeId exchId, @Nullable GridCacheVersion lastVer) {
this.exchId = exchId;
this.lastVer = lastVer;
+
+ // Partitions related messages don't have objects for which deployment info has to be written.
+ this.depEnabled = false;
}
/** {@inheritDoc} */
@@ -147,4 +150,4 @@ abstract class GridDhtPartitionsAbstractMessage extends GridCacheMessage {
@Override public String toString() {
return S.toString(GridDhtPartitionsAbstractMessage.class, this, super.toString());
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index ab6dc3c..3237829 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -452,7 +452,8 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
null,
0,
null,
- 0);
+ 0,
+ tx.activeCachesDeploymentEnabled());
finishReq.checkCommitted(true);
@@ -574,7 +575,8 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
null,
tx.size(),
tx.subjectId(),
- tx.taskNameHash()
+ tx.taskNameHash(),
+ tx.activeCachesDeploymentEnabled()
);
// If this is the primary node for the keys.
@@ -764,4 +766,4 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
return S.toString(MiniFuture.class, this, "done", isDone(), "cancelled", isCancelled(), "err", error());
}
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
index c52a127..afde904 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
@@ -77,6 +77,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
* @param committedVers Committed versions.
* @param rolledbackVers Rolled back versions.
* @param txSize Expected transaction size.
+ * @param depEnabled Deployment enabled.
*/
public GridNearTxFinishRequest(
IgniteUuid futId,
@@ -96,7 +97,8 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
Collection<GridCacheVersion> rolledbackVers,
int txSize,
@Nullable UUID subjId,
- int taskNameHash) {
+ int taskNameHash,
+ boolean depEnabled) {
super(
xidVer,
futId,
@@ -119,6 +121,7 @@ public class GridNearTxFinishRequest extends GridDistributedTxFinishRequest {
this.topVer = topVer;
this.subjId = subjId;
this.taskNameHash = taskNameHash;
+ this.depEnabled = depEnabled;
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java
index c860baa..4ede5ce 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java
@@ -73,6 +73,8 @@ public class GridNearTxFinishResponse extends GridDistributedTxFinishResponse {
this.nearThreadId = nearThreadId;
this.miniId = miniId;
this.err = err;
+
+ this.depEnabled = false;
}
/** {@inheritDoc} */
@@ -203,4 +205,4 @@ public class GridNearTxFinishResponse extends GridDistributedTxFinishResponse {
@Override public String toString() {
return S.toString(GridNearTxFinishResponse.class, this, "super", super.toString());
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/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 2b3ddff..012baa5 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
@@ -142,6 +142,7 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
this.subjId = subjId;
this.taskNameHash = taskNameHash;
this.firstClientReq = firstClientReq;
+ this.depEnabled = tx.activeCachesDeploymentEnabled();
}
/**
@@ -492,4 +493,4 @@ public class GridNearTxPrepareRequest extends GridDistributedTxPrepareRequest {
@Override public String toString() {
return S.toString(GridNearTxPrepareRequest.class, this, super.toString());
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/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 6558f97..f515303 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
@@ -115,6 +115,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
* @param retVal Return value.
* @param err Error.
* @param clientRemapVer Not {@code null} if client node should remap transaction.
+ * @param depEnabled Deployment enabled.
*/
public GridNearTxPrepareResponse(
GridCacheVersion xid,
@@ -124,7 +125,8 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
GridCacheVersion writeVer,
GridCacheReturn retVal,
Throwable err,
- AffinityTopologyVersion clientRemapVer
+ AffinityTopologyVersion clientRemapVer,
+ boolean depEnabled
) {
super(xid, err);
@@ -138,6 +140,7 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
this.writeVer = writeVer;
this.retVal = retVal;
this.clientRemapVer = clientRemapVer;
+ this.depEnabled = depEnabled;
}
/**
@@ -543,4 +546,4 @@ public class GridNearTxPrepareResponse extends GridDistributedTxPrepareResponse
return S.toString(GridNearTxPrepareResponse.class, this, "super", super.toString());
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
index 11cd3fd..95e7f99 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
@@ -280,6 +280,12 @@ public interface IgniteInternalTx extends AutoCloseable, GridTimeoutObject {
public Collection<Integer> activeCacheIds();
/**
+ * @return {@code true} or {@code false} if the deployment is enabled or disabled for all active caches involved
+ * in this transaction. Returns {@code null} if there are no any active caches in the transaction yet.
+ */
+ @Nullable public Boolean activeCachesDeploymentEnabled();
+
+ /**
* Attempts to set topology version and returns the current value.
* If topology version was previously set, then it's value will
* be returned (but not updated).
@@ -722,4 +728,4 @@ public interface IgniteInternalTx extends AutoCloseable, GridTimeoutObject {
* @param topVer New topology version.
*/
public void onRemap(AffinityTopologyVersion topVer);
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
index 88752a2..2139696 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
@@ -1757,6 +1757,11 @@ public abstract class IgniteTxAdapter extends GridMetadataAwareAdapter
}
/** {@inheritDoc} */
+ @Nullable @Override public Boolean activeCachesDeploymentEnabled() {
+ return null;
+ }
+
+ /** {@inheritDoc} */
@Nullable @Override public Object addMeta(int key, Object val) {
throw new IllegalStateException("Deserialized transaction can only be used as read-only.");
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index c2cc629..950bf01 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -241,7 +241,8 @@ public class IgniteTxHandler {
req.version(),
null,
e,
- null);
+ null,
+ req.deployInfo() != null);
}
}
});
@@ -327,7 +328,8 @@ public class IgniteTxHandler {
req.version(),
null,
null,
- top.topologyVersion());
+ top.topologyVersion(),
+ req.deployInfo() != null);
try {
ctx.io().send(nearNode, res, req.policy());
@@ -787,7 +789,7 @@ public class IgniteTxHandler {
GridDhtTxPrepareResponse res;
try {
- res = new GridDhtTxPrepareResponse(req.version(), req.futureId(), req.miniId());
+ res = new GridDhtTxPrepareResponse(req.version(), req.futureId(), req.miniId(), req.deployInfo() != null);
// Start near transaction first.
nearTx = !F.isEmpty(req.nearWrites()) ? startNearRemoteTx(ctx.deploy().globalLoader(), nodeId, req) : null;
@@ -1053,7 +1055,8 @@ public class IgniteTxHandler {
*/
protected void sendReply(UUID nodeId, GridDhtTxFinishRequest req, boolean committed) {
if (req.replyRequired()) {
- GridDhtTxFinishResponse res = new GridDhtTxFinishResponse(req.version(), req.futureId(), req.miniId());
+ GridDhtTxFinishResponse res = new GridDhtTxFinishResponse(req.version(), req.futureId(), req.miniId(),
+ req.deployInfo() != null);
if (req.checkCommitted()) {
res.checkCommitted(true);
@@ -1382,4 +1385,4 @@ public class IgniteTxHandler {
fut.onResult(nodeId, res);
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8635693f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index 6ca1f72..4b89ef3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@ -164,6 +164,9 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
/** Implicit transaction result. */
protected GridCacheReturn implicitRes;
+ /** Flag indicating whether deployment is enabled for caches from this transaction or not. */
+ private Boolean depEnabled;
+
/**
* Empty constructor required for {@link Externalizable}.
*/
@@ -276,6 +279,11 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
}
/** {@inheritDoc} */
+ @Nullable @Override public Boolean activeCachesDeploymentEnabled() {
+ return depEnabled;
+ }
+
+ /** {@inheritDoc} */
@Override public boolean isStarted() {
return txMap != null;
}
@@ -3219,6 +3227,9 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
}
else
activeCacheIds.add(cacheId);
+
+ if (depEnabled == null)
+ depEnabled = cacheCtx.deploymentEnabled();
}
}