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 2015/10/16 13:02:58 UTC
[20/20] ignite git commit: ignite-1607 WIP
ignite-1607 WIP
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5993d269
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5993d269
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5993d269
Branch: refs/heads/ignite-1607
Commit: 5993d2694e2c236347e413fcd8c806f1c8019892
Parents: 6668dba
Author: sboikov <sb...@gridgain.com>
Authored: Fri Oct 16 13:08:52 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Oct 16 13:55:12 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheAdapter.java | 34 ++------------------
.../dht/CacheDistributedGetFutureAdapter.java | 6 ----
.../distributed/dht/GridDhtCacheAdapter.java | 6 ++--
.../distributed/dht/GridDhtCacheEntry.java | 2 +-
.../cache/distributed/dht/GridDhtGetFuture.java | 1 -
.../dht/GridPartitionedGetFuture.java | 12 +++----
.../dht/atomic/GridDhtAtomicCache.java | 6 +---
.../dht/colocated/GridDhtColocatedCache.java | 21 ++++--------
.../distributed/near/GridNearAtomicCache.java | 1 -
.../distributed/near/GridNearCacheAdapter.java | 28 +---------------
.../distributed/near/GridNearCacheEntry.java | 1 -
.../distributed/near/GridNearGetFuture.java | 12 ++-----
...arOptimisticSerializableTxPrepareFuture.java | 15 ++++++---
.../near/GridNearOptimisticTxPrepareFuture.java | 7 ----
.../near/GridNearTransactionalCache.java | 5 +--
.../cache/distributed/near/GridNearTxLocal.java | 33 -------------------
.../cache/local/GridLocalCacheEntry.java | 1 -
.../cache/transactions/IgniteTxAdapter.java | 16 ++++-----
.../transactions/IgniteTxLocalAdapter.java | 3 +-
.../cache/transactions/IgniteTxLocalEx.java | 2 --
.../CacheSerializableTransactionsTest.java | 6 ++--
...onedNearDisabledTxMultiThreadedSelfTest.java | 31 ++++++++++++++++++
...niteCacheClientNodeChangingTopologyTest.java | 20 ++++++++++--
...CachePartitionedTxMultiThreadedSelfTest.java | 10 ++++++
.../testsuites/IgniteCacheTestSuite2.java | 2 ++
25 files changed, 107 insertions(+), 174 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 41b3e39..fa086ff 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -1341,36 +1341,6 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
}
/**
- * @param keys Keys.
- * @param reload Reload flag.
- * @param tx Transaction.
- * @param subjId Subject ID.
- * @param taskName Task name.
- * @param vis Visitor.
- * @return Future.
- */
- public IgniteInternalFuture<Object> readThroughAllAsync(final Collection<KeyCacheObject> keys,
- boolean reload,
- boolean skipVals,
- @Nullable final IgniteInternalTx tx,
- @Nullable UUID subjId,
- String taskName,
- final IgniteBiInClosure<KeyCacheObject, Object> vis) {
- return ctx.closures().callLocalSafe(new GPC<Object>() {
- @Nullable @Override public Object call() {
- try {
- ctx.store().loadAll(tx, keys, vis);
- }
- catch (IgniteCheckedException e) {
- throw new GridClosureException(e);
- }
-
- return null;
- }
- }, true);
- }
-
- /**
* @param key Key.
* @param topVer Topology version.
* @return Entry.
@@ -1592,7 +1562,9 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
* @param deserializePortable Deserialize portable flag.
* @param expiry Expiry policy.
* @param skipVals Skip values flag.
- * @param keepCacheObjects Keep cache objects
+ * @param keepCacheObjects Keep cache objects.
+ * @param canRemap Can remap flag.
+ * @param needVer If {@code true} returns values as tuples containing value and version.
* @return Future.
*/
public final <K1, V1> IgniteInternalFuture<Map<K1, V1>> getAllAsync0(@Nullable final Collection<KeyCacheObject> keys,
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/CacheDistributedGetFutureAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/CacheDistributedGetFutureAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/CacheDistributedGetFutureAdapter.java
index fc04126..721ba4e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/CacheDistributedGetFutureAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/CacheDistributedGetFutureAdapter.java
@@ -53,9 +53,6 @@ public abstract class CacheDistributedGetFutureAdapter<K, V> extends GridCompoun
/** Keys. */
protected Collection<KeyCacheObject> keys;
- /** Reload flag. */
- protected boolean reload;
-
/** Read through flag. */
protected boolean readThrough;
@@ -99,7 +96,6 @@ public abstract class CacheDistributedGetFutureAdapter<K, V> extends GridCompoun
* @param cctx Context.
* @param keys Keys.
* @param readThrough Read through flag.
- * @param reload Reload flag.
* @param forcePrimary If {@code true} then will force network trip to primary node even
* if called on backup node.
* @param subjId Subject ID.
@@ -115,7 +111,6 @@ public abstract class CacheDistributedGetFutureAdapter<K, V> extends GridCompoun
GridCacheContext<K, V> cctx,
Collection<KeyCacheObject> keys,
boolean readThrough,
- boolean reload,
boolean forcePrimary,
@Nullable UUID subjId,
String taskName,
@@ -133,7 +128,6 @@ public abstract class CacheDistributedGetFutureAdapter<K, V> extends GridCompoun
this.cctx = cctx;
this.keys = keys;
this.readThrough = readThrough;
- this.reload = reload;
this.forcePrimary = forcePrimary;
this.subjId = subjId;
this.taskName = taskName;
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
index e8b238c..a3c52ab 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
@@ -563,7 +563,7 @@ public abstract class GridDhtCacheAdapter<K, V> extends GridDistributedCacheAdap
/**
* This method is used internally. Use
- * {@link #getDhtAsync(UUID, long, LinkedHashMap, boolean, boolean, AffinityTopologyVersion, UUID, int, IgniteCacheExpiryPolicy, boolean)}
+ * {@link #getDhtAsync(UUID, long, LinkedHashMap, boolean, AffinityTopologyVersion, UUID, int, IgniteCacheExpiryPolicy, boolean)}
* method instead to retrieve DHT value.
*
* @param keys {@inheritDoc}
@@ -631,7 +631,6 @@ public abstract class GridDhtCacheAdapter<K, V> extends GridDistributedCacheAdap
* @param msgId Message ID.
* @param keys Keys to get.
* @param readThrough Read through flag.
- * @param reload Reload flag.
* @param topVer Topology version.
* @param subjId Subject ID.
* @param taskNameHash Task name hash code.
@@ -642,7 +641,6 @@ public abstract class GridDhtCacheAdapter<K, V> extends GridDistributedCacheAdap
long msgId,
LinkedHashMap<KeyCacheObject, Boolean> keys,
boolean readThrough,
- boolean reload,
AffinityTopologyVersion topVer,
@Nullable UUID subjId,
int taskNameHash,
@@ -671,6 +669,7 @@ public abstract class GridDhtCacheAdapter<K, V> extends GridDistributedCacheAdap
*/
protected void processNearGetRequest(final UUID nodeId, final GridNearGetRequest req) {
assert ctx.affinityNode();
+ assert !req.reload() : req;
long ttl = req.accessTtl();
@@ -681,7 +680,6 @@ public abstract class GridDhtCacheAdapter<K, V> extends GridDistributedCacheAdap
req.messageId(),
req.keys(),
req.readThrough(),
- req.reload(),
req.topologyVersion(),
req.subjectId(),
req.taskNameHash(),
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
index 5d125ee..5f2a94d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
@@ -38,7 +38,6 @@ import org.apache.ignite.internal.processors.cache.KeyCacheObject;
import org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheEntry;
import org.apache.ignite.internal.processors.cache.distributed.GridDistributedLockCancelledException;
import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
-import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.apache.ignite.internal.util.lang.GridPlainRunnable;
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
@@ -164,6 +163,7 @@ public class GridDhtCacheEntry extends GridDistributedCacheEntry {
* @param topVer Topology version.
* @param threadId Owning thread ID.
* @param ver Lock version.
+ * @param serOrder Version for serializable transactions ordering.
* @param serReadVer Optional read entry version for optimistic serializable transaction.
* @param timeout Timeout to acquire lock.
* @param reenter Reentry flag.
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
index c70440e..182adc1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
@@ -321,7 +321,6 @@ public final class GridDhtGetFuture<K, V> extends GridCompoundIdentityFuture<Col
// TODO: In this case seems like we will be stuck with untracked near entry.
// TODO: To fix, check that reader is contained in the list of readers once
// TODO: again after the returned future completes - if not, try again.
- // TODO: Also, why is info read before transactions are complete, and not after?
IgniteInternalFuture<Boolean> f = addReader ? e.addReader(reader, msgId, topVer) : null;
if (f != null) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
index efa2b1a..8d1dde5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
@@ -85,7 +85,6 @@ public class GridPartitionedGetFuture<K, V> extends CacheDistributedGetFutureAda
* @param keys Keys.
* @param topVer Topology version.
* @param readThrough Read through flag.
- * @param reload Reload flag.
* @param forcePrimary If {@code true} then will force network trip to primary node even
* if called on backup node.
* @param subjId Subject ID.
@@ -102,7 +101,6 @@ public class GridPartitionedGetFuture<K, V> extends CacheDistributedGetFutureAda
Collection<KeyCacheObject> keys,
AffinityTopologyVersion topVer,
boolean readThrough,
- boolean reload,
boolean forcePrimary,
@Nullable UUID subjId,
String taskName,
@@ -116,7 +114,6 @@ public class GridPartitionedGetFuture<K, V> extends CacheDistributedGetFutureAda
super(cctx,
keys,
readThrough,
- reload,
forcePrimary,
subjId,
taskName,
@@ -273,7 +270,7 @@ public class GridPartitionedGetFuture<K, V> extends CacheDistributedGetFutureAda
if (isDone())
return;
- if (!F.isEmpty(locVals))
+ if (!locVals.isEmpty())
add(new GridFinishedFuture<>(locVals));
if (hasRmtNodes) {
@@ -297,7 +294,6 @@ public class GridPartitionedGetFuture<K, V> extends CacheDistributedGetFutureAda
-1,
mappedKeys,
readThrough,
- reload,
topVer,
subjId,
taskName == null ? 0 : taskName.hashCode(),
@@ -350,7 +346,7 @@ public class GridPartitionedGetFuture<K, V> extends CacheDistributedGetFutureAda
ver,
mappedKeys,
readThrough,
- reload,
+ false,
topVer,
subjId,
taskName == null ? 0 : taskName.hashCode(),
@@ -397,10 +393,10 @@ public class GridPartitionedGetFuture<K, V> extends CacheDistributedGetFutureAda
boolean allowLocRead = !forcePrimary || cctx.affinity().primary(cctx.localNode(), key, topVer);
while (true) {
- GridCacheEntryEx entry = null;
+ GridCacheEntryEx entry;
try {
- if (!reload && allowLocRead) {
+ if (allowLocRead) {
try {
entry = colocated.context().isSwapOrOffheapEnabled() ? colocated.entryEx(key) :
colocated.peekEx(key);
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/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 8494410..9f5ad3e 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
@@ -333,7 +333,6 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
return asyncOp(new CO<IgniteInternalFuture<Map<K, V>>>() {
@Override public IgniteInternalFuture<Map<K, V>> apply() {
return getAllAsync0(ctx.cacheKeysView(keys),
- false,
forcePrimary,
subjId0,
taskName,
@@ -919,7 +918,6 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
* Entry point to all public API get methods.
*
* @param keys Keys to remove.
- * @param reload Reload flag.
* @param forcePrimary Force primary flag.
* @param subjId Subject ID.
* @param taskName Task name.
@@ -930,7 +928,6 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
* @return Get future.
*/
private IgniteInternalFuture<Map<K, V>> getAllAsync0(@Nullable Collection<KeyCacheObject> keys,
- boolean reload,
boolean forcePrimary,
UUID subjId,
String taskName,
@@ -946,7 +943,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
final IgniteCacheExpiryPolicy expiry = skipVals ? null : expiryPolicy(expiryPlc);
// Optimisation: try to resolve value locally and escape 'get future' creation.
- if (!reload && !forcePrimary) {
+ if (!forcePrimary) {
Map<K, V> locVals = U.newHashMap(keys.size());
boolean success = true;
@@ -1031,7 +1028,6 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
keys,
topVer,
!skipStore,
- reload,
forcePrimary,
subjId,
taskName,
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
index e8aca71..43f9658 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
@@ -36,7 +36,6 @@ import org.apache.ignite.internal.processors.cache.GridCacheConcurrentMap;
import org.apache.ignite.internal.processors.cache.GridCacheContext;
import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
import org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException;
-import org.apache.ignite.internal.processors.cache.GridCacheFilterFailedException;
import org.apache.ignite.internal.processors.cache.GridCacheLockTimeoutException;
import org.apache.ignite.internal.processors.cache.GridCacheMapEntry;
import org.apache.ignite.internal.processors.cache.GridCacheMapEntryFactory;
@@ -65,7 +64,6 @@ import org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalEx;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.apache.ignite.internal.util.future.GridEmbeddedFuture;
import org.apache.ignite.internal.util.future.GridFinishedFuture;
-import org.apache.ignite.internal.util.lang.GridInClosure3;
import org.apache.ignite.internal.util.typedef.C2;
import org.apache.ignite.internal.util.typedef.CI2;
import org.apache.ignite.internal.util.typedef.F;
@@ -230,7 +228,6 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
return loadAsync(
ctx.cacheKeysView(keys),
opCtx == null || !opCtx.skipStore(),
- false,
forcePrimary,
topVer,
subjId,
@@ -257,7 +254,6 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
/**
* @param keys Keys to load.
* @param readThrough Read through flag.
- * @param reload Reload flag.
* @param forcePrimary Force get from primary node flag.
* @param topVer Topology version.
* @param subjId Subject ID.
@@ -265,12 +261,12 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
* @param deserializePortable Deserialize portable flag.
* @param expiryPlc Expiry policy.
* @param skipVals Skip values flag.
+ * @param canRemap Can remap flag.
* @return Loaded values.
*/
public IgniteInternalFuture<Map<K, V>> loadAsync(
@Nullable Collection<KeyCacheObject> keys,
boolean readThrough,
- boolean reload,
boolean forcePrimary,
AffinityTopologyVersion topVer,
@Nullable UUID subjId,
@@ -281,7 +277,6 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
boolean canRemap) {
return loadAsync(keys,
readThrough,
- reload,
forcePrimary,
topVer, subjId,
taskName,
@@ -296,7 +291,6 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
/**
* @param keys Keys to load.
* @param readThrough Read through flag.
- * @param reload Reload flag.
* @param forcePrimary Force get from primary node flag.
* @param topVer Topology version.
* @param subjId Subject ID.
@@ -309,7 +303,6 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
public IgniteInternalFuture<Map<K, V>> loadAsync(
@Nullable Collection<KeyCacheObject> keys,
boolean readThrough,
- boolean reload,
boolean forcePrimary,
AffinityTopologyVersion topVer,
@Nullable UUID subjId,
@@ -319,7 +312,7 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
boolean skipVals,
boolean canRemap,
boolean needVer,
- boolean keepCacheObject
+ boolean keepCacheObj
) {
if (keys == null || keys.isEmpty())
return new GridFinishedFuture<>(Collections.<K, V>emptyMap());
@@ -328,7 +321,7 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
expiryPlc = expiryPolicy(null);
// Optimisation: try to resolve value locally and escape 'get future' creation.
- if (!reload && !forcePrimary) {
+ if (!forcePrimary) {
Map<K, V> locVals = null;
boolean success = true;
@@ -395,14 +388,15 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
if (needVer)
locVals.put((K)key, (V)new T2<>((Object)(skipVals ? true : v), ver));
- else
+ else {
ctx.addResult(locVals,
key,
v,
skipVals,
- keepCacheObject,
+ keepCacheObj,
deserializePortable,
true);
+ }
}
}
else
@@ -449,7 +443,6 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
keys,
topVer,
readThrough,
- reload,
forcePrimary,
subjId,
taskName,
@@ -458,7 +451,7 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
skipVals,
canRemap,
needVer,
- keepCacheObject);
+ keepCacheObj);
fut.init();
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
index 1d352f6..1bf03a9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
@@ -405,7 +405,6 @@ public class GridNearAtomicCache<K, V> extends GridNearCacheAdapter<K, V> {
return loadAsync(null,
ctx.cacheKeysView(keys),
- false,
forcePrimary,
subjId,
taskName,
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
index d1946fe..3c3527a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
@@ -221,34 +221,9 @@ public abstract class GridNearCacheAdapter<K, V> extends GridDistributedCacheAda
return true;
}
- /** {@inheritDoc} */
- @SuppressWarnings({"unchecked", "RedundantCast"})
- @Override public IgniteInternalFuture<Object> readThroughAllAsync(
- Collection<KeyCacheObject> keys,
- boolean reload,
- boolean skipVals,
- IgniteInternalTx tx,
- @Nullable UUID subjId,
- String taskName,
- IgniteBiInClosure<KeyCacheObject, Object> vis
- ) {
- return (IgniteInternalFuture)loadAsync(tx,
- keys,
- reload,
- /*force primary*/false,
- subjId,
- taskName,
- /*deserialize portable*/true,
- /*expiry policy*/null,
- skipVals,
- /*skip store*/false,
- /*can remap*/true);
- }
-
/**
* @param tx Transaction.
* @param keys Keys to load.
- * @param reload Reload flag.
* @param forcePrimary Force primary flag.
* @param subjId Subject ID.
* @param taskName Task name.
@@ -256,11 +231,11 @@ public abstract class GridNearCacheAdapter<K, V> extends GridDistributedCacheAda
* @param expiryPlc Expiry policy.
* @param skipVal Skip value flag.
* @param skipStore Skip store flag.
+ * @param canRemap Can remap flag.
* @return Loaded values.
*/
public IgniteInternalFuture<Map<K, V>> loadAsync(@Nullable IgniteInternalTx tx,
@Nullable Collection<KeyCacheObject> keys,
- boolean reload,
boolean forcePrimary,
@Nullable UUID subjId,
String taskName,
@@ -280,7 +255,6 @@ public abstract class GridNearCacheAdapter<K, V> extends GridDistributedCacheAda
GridNearGetFuture<K, V> fut = new GridNearGetFuture<>(ctx,
keys,
!skipStore,
- reload,
forcePrimary,
txx,
subjId,
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java
index 2ae03d3..5c3eccd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java
@@ -332,7 +332,6 @@ public class GridNearCacheEntry extends GridDistributedCacheEntry {
UUID subjId, String taskName) throws IgniteCheckedException {
return cctx.near().loadAsync(tx,
F.asList(key),
- reload,
/*force primary*/false,
subjId,
taskName,
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
index 61e09ad..ab0bb20 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
@@ -37,7 +37,6 @@ import org.apache.ignite.internal.processors.cache.GridCacheContext;
import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
import org.apache.ignite.internal.processors.cache.GridCacheEntryInfo;
import org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException;
-import org.apache.ignite.internal.processors.cache.GridCacheFilterFailedException;
import org.apache.ignite.internal.processors.cache.GridCacheMessage;
import org.apache.ignite.internal.processors.cache.IgniteCacheExpiryPolicy;
import org.apache.ignite.internal.processors.cache.KeyCacheObject;
@@ -51,7 +50,6 @@ import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.apache.ignite.internal.util.GridLeanMap;
import org.apache.ignite.internal.util.future.GridFinishedFuture;
import org.apache.ignite.internal.util.future.GridFutureAdapter;
-import org.apache.ignite.internal.util.lang.GridInClosure3;
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
import org.apache.ignite.internal.util.typedef.C1;
import org.apache.ignite.internal.util.typedef.CI1;
@@ -91,7 +89,6 @@ public final class GridNearGetFuture<K, V> extends CacheDistributedGetFutureAdap
* @param cctx Context.
* @param keys Keys.
* @param readThrough Read through flag.
- * @param reload Reload flag.
* @param forcePrimary If {@code true} get will be performed on primary node even if
* called on backup node.
* @param tx Transaction.
@@ -108,7 +105,6 @@ public final class GridNearGetFuture<K, V> extends CacheDistributedGetFutureAdap
GridCacheContext<K, V> cctx,
Collection<KeyCacheObject> keys,
boolean readThrough,
- boolean reload,
boolean forcePrimary,
@Nullable IgniteTxLocalEx tx,
@Nullable UUID subjId,
@@ -123,7 +119,6 @@ public final class GridNearGetFuture<K, V> extends CacheDistributedGetFutureAdap
super(cctx,
keys,
readThrough,
- reload,
forcePrimary,
subjId,
taskName,
@@ -301,7 +296,6 @@ public final class GridNearGetFuture<K, V> extends CacheDistributedGetFutureAdap
-1,
mappedKeys,
readThrough,
- reload,
topVer,
subjId,
taskName == null ? 0 : taskName.hashCode(),
@@ -360,7 +354,7 @@ public final class GridNearGetFuture<K, V> extends CacheDistributedGetFutureAdap
ver,
mappedKeys,
readThrough,
- reload,
+ false,
topVer,
subjId,
taskName == null ? 0 : taskName.hashCode(),
@@ -528,7 +522,7 @@ public final class GridNearGetFuture<K, V> extends CacheDistributedGetFutureAdap
}
}
- if (v != null && !reload) {
+ if (v != null) {
if (needVer) {
V val0 = (V)new T2<>(skipVals ? true : v, ver);
@@ -602,7 +596,7 @@ public final class GridNearGetFuture<K, V> extends CacheDistributedGetFutureAdap
entry = allowLocRead ? near.peekEx(key) : null;
}
finally {
- if (entry != null && !reload && tx == null)
+ if (entry != null && tx == null)
cctx.evicts().touch(entry, topVer);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/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 6836a81..b5ae659 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
@@ -480,10 +480,10 @@ public class GridNearOptimisticSerializableTxPrepareFuture extends GridNearTxPre
Map<IgniteBiTuple<ClusterNode, Boolean>, GridDistributedTxMapping> mappings = new HashMap<>();
for (IgniteTxEntry write : writes)
- map(write, topVer, mappings, true, remap);
+ map(write, topVer, mappings, remap);
for (IgniteTxEntry read : reads)
- map(read, topVer, mappings, true, remap);
+ map(read, topVer, mappings, remap);
keyLockFut.onAllKeysAdded();
@@ -645,14 +645,12 @@ public class GridNearOptimisticSerializableTxPrepareFuture extends GridNearTxPre
* @param entry Transaction entry.
* @param topVer Topology version.
* @param curMapping Current mapping.
- * @param waitLock Wait lock flag.
* @param remap Remap flag.
*/
private void map(
IgniteTxEntry entry,
AffinityTopologyVersion topVer,
Map<IgniteBiTuple<ClusterNode, Boolean>, GridDistributedTxMapping> curMapping,
- boolean waitLock,
boolean remap
) {
GridCacheContext cacheCtx = entry.context();
@@ -671,6 +669,13 @@ public class GridNearOptimisticSerializableTxPrepareFuture extends GridNearTxPre
", primary=" + U.toShortString(primary) + ", topVer=" + topVer + ']');
}
+ if (primary.version().compareTo(SER_TX_SINCE) < 0) {
+ onDone(new IgniteCheckedException("Optimistic serializable transactions can be used only with node " +
+ "version starting from " + SER_TX_SINCE));
+
+ return;
+ }
+
// Must re-initialize cached entry while holding topology lock.
if (cacheCtx.isNear())
entry.cached(cacheCtx.nearTx().entryExx(entry.key(), topVer));
@@ -680,7 +685,7 @@ public class GridNearOptimisticSerializableTxPrepareFuture extends GridNearTxPre
entry.cached(cacheCtx.local().entryEx(entry.key(), topVer));
if (!remap && (cacheCtx.isNear() || cacheCtx.isLocal())) {
- if (waitLock && entry.explicitVersion() == null)
+ if (entry.explicitVersion() == null)
keyLockFut.addLockKey(entry.txKey());
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/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 9cd2478..b65e519 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
@@ -40,7 +40,6 @@ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxMapp
import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry;
import org.apache.ignite.internal.processors.cache.transactions.IgniteTxKey;
-import org.apache.ignite.internal.transactions.IgniteTxOptimisticCheckedException;
import org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException;
import org.apache.ignite.internal.transactions.IgniteTxTimeoutCheckedException;
import org.apache.ignite.internal.util.GridConcurrentHashSet;
@@ -156,12 +155,6 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearTxPrepareFutureAd
if (err.compareAndSet(null, e)) {
boolean marked = tx.setRollbackOnly();
- if (e instanceof IgniteTxOptimisticCheckedException) {
- assert nodeId != null : "Missing node ID for optimistic failure exception: " + e;
-
- tx.removeKeysMapping(nodeId, mappings);
- }
-
if (e instanceof IgniteTxRollbackCheckedException) {
if (marked) {
try {
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
index 909b547..2473c25 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
@@ -48,7 +48,6 @@ import org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalEx;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException;
import org.apache.ignite.internal.util.future.GridFinishedFuture;
-import org.apache.ignite.internal.util.lang.GridInClosure3;
import org.apache.ignite.internal.util.typedef.CI2;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.CU;
@@ -155,7 +154,6 @@ public class GridNearTransactionalCache<K, V> extends GridNearCacheAdapter<K, V>
return loadAsync(null,
ctx.cacheKeysView(keys),
- false,
forcePrimary,
subjId,
taskName,
@@ -188,7 +186,6 @@ public class GridNearTransactionalCache<K, V> extends GridNearCacheAdapter<K, V>
keys,
readThrough,
false,
- false,
tx,
CU.subjectId(tx, ctx.shared()),
tx.resolveTaskName(),
@@ -197,7 +194,7 @@ public class GridNearTransactionalCache<K, V> extends GridNearCacheAdapter<K, V>
skipVals,
/*can remap*/true,
needVer,
- true);
+ /*keepCacheObjects*/true);
// init() will register future for responses if it has remote mappings.
fut.init();
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/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 ad5c9d9..2c0d285 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
@@ -380,7 +380,6 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter {
return cacheCtx.colocated().loadAsync(
keys,
readThrough,
- /*reload*/false,
/*force primary*/false,
topologyVersion(),
CU.subjectId(this, cctx),
@@ -588,38 +587,6 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter {
}
}
-
- /**
- * TODO IGNITE-1607: remove this method?
- *
- * Removes mapping in case of optimistic tx failure on primary node.
- *
- * @param failedNodeId Failed node ID.
- * @param mapQueue Mappings queue.
- */
- void removeKeysMapping(UUID failedNodeId, Iterable<GridDistributedTxMapping> mapQueue) {
- assert failedNodeId != null;
- assert mapQueue != null;
-
- mappings.remove(failedNodeId);
-
- if (!F.isEmpty(mapQueue)) {
- for (GridDistributedTxMapping m : mapQueue) {
- UUID nodeId = m.node().id();
-
- GridDistributedTxMapping mapping = mappings.get(nodeId);
-
- if (mapping != null) {
- for (IgniteTxEntry entry : m.entries())
- mapping.removeEntry(entry);
-
- if (mapping.entries().isEmpty())
- mappings.remove(nodeId);
- }
- }
- }
- }
-
/**
* @param nodeId Node ID to mark with explicit lock.
* @return {@code True} if mapping was found.
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCacheEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCacheEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCacheEntry.java
index 32c2fa9..39d4201 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCacheEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCacheEntry.java
@@ -25,7 +25,6 @@ import org.apache.ignite.internal.processors.cache.GridCacheMvcc;
import org.apache.ignite.internal.processors.cache.GridCacheMvccCandidate;
import org.apache.ignite.internal.processors.cache.KeyCacheObject;
import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
-import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.jetbrains.annotations.Nullable;
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/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 5c57bb4..c6b749a 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
@@ -1276,14 +1276,14 @@ public abstract class IgniteTxAdapter extends GridMetadataAwareAdapter
CacheObject cacheVal = txEntry.hasValue() ? txEntry.value() :
txEntry.cached().innerGet(this,
- /*swap*/false,
- /*read through*/false,
- /*fail fast*/true,
- /*unmarshal*/true,
- /*metrics*/metrics,
- /*event*/recordEvt,
- /*temporary*/true,
- /*subjId*/subjId,
+ /*swap*/false,
+ /*read through*/false,
+ /*fail fast*/true,
+ /*unmarshal*/true,
+ /*metrics*/metrics,
+ /*event*/recordEvt,
+ /*temporary*/true,
+ /*subjId*/subjId,
/**closure name */recordEvt ? F.first(txEntry.entryProcessors()).get1() : null,
resolveTaskName(),
null);
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/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 ccf7394..0c48b93 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
@@ -31,12 +31,12 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
+import javax.cache.Cache;
import javax.cache.CacheException;
import javax.cache.expiry.Duration;
import javax.cache.expiry.ExpiryPolicy;
import javax.cache.processor.EntryProcessor;
import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.IgniteException;
import org.apache.ignite.internal.IgniteInternalFuture;
import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
@@ -2913,6 +2913,7 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
* @param drMap DR map.
* @param retval Flag indicating whether a value should be returned.
* @param filter Filter.
+ * @param singleRmv {@code True} for single key remove operation ({@link Cache#remove(Object)}.
* @return Future for asynchronous remove.
*/
@SuppressWarnings("unchecked")
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
index bdea971..0d83338 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
@@ -25,13 +25,11 @@ import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.IgniteInternalFuture;
import org.apache.ignite.internal.processors.cache.CacheEntryPredicate;
import org.apache.ignite.internal.processors.cache.GridCacheContext;
-import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
import org.apache.ignite.internal.processors.cache.GridCacheReturn;
import org.apache.ignite.internal.processors.cache.KeyCacheObject;
import org.apache.ignite.internal.processors.cache.dr.GridCacheDrInfo;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.apache.ignite.internal.util.lang.GridInClosure3;
-import org.apache.ignite.lang.IgniteBiInClosure;
import org.jetbrains.annotations.Nullable;
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
index 4f6317d..1cf30b6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
@@ -3039,7 +3039,7 @@ public class CacheSerializableTransactionsTest extends GridCommonAbstractTest {
/**
* @throws Exception If failed.
*/
- public void testNoOptimisticExceptionChangingTopology() throws Exception {
+ public void testNoOptimisticExceptionOnChangingTopology() throws Exception {
if (FAST)
return;
@@ -3176,10 +3176,10 @@ public class CacheSerializableTransactionsTest extends GridCommonAbstractTest {
fut.get();
}
finally {
+ finished.set(true);
+
for (String cacheName : cacheNames)
srv.destroyCache(cacheName);
-
- finished.set(true);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionedNearDisabledTxMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionedNearDisabledTxMultiThreadedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionedNearDisabledTxMultiThreadedSelfTest.java
new file mode 100644
index 0000000..ab9dc76
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePartitionedNearDisabledTxMultiThreadedSelfTest.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed;
+
+import org.apache.ignite.internal.processors.cache.distributed.near.GridCachePartitionedTxMultiThreadedSelfTest;
+
+/**
+ *
+ */
+public class GridCachePartitionedNearDisabledTxMultiThreadedSelfTest
+ extends GridCachePartitionedTxMultiThreadedSelfTest {
+ /** {@inheritDoc} */
+ @Override protected boolean nearEnabled() {
+ return false;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
index a856f42..0967255 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheClientNodeChangingTopologyTest.java
@@ -80,6 +80,7 @@ import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.apache.ignite.transactions.Transaction;
import org.apache.ignite.transactions.TransactionConcurrency;
+import org.apache.ignite.transactions.TransactionIsolation;
import org.eclipse.jetty.util.ConcurrentHashSet;
import org.jetbrains.annotations.Nullable;
@@ -1571,6 +1572,13 @@ public class IgniteCacheClientNodeChangingTopologyTest extends GridCommonAbstrac
/**
* @throws Exception If failed.
*/
+ public void testOptimisticSerializableTxPutAllMultinode() throws Exception {
+ multinode(null, TestType.OPTIMISTIC_SERIALIZABLE_TX);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
public void testPessimisticTxPutAllMultinode() throws Exception {
multinode(null, TestType.PESSIMISTIC_TX);
}
@@ -1640,7 +1648,9 @@ public class IgniteCacheClientNodeChangingTopologyTest extends GridCommonAbstrac
IgniteCache<Integer, Integer> cache = ignite.cache(null);
- boolean useTx = testType == TestType.OPTIMISTIC_TX || testType == TestType.PESSIMISTIC_TX;
+ boolean useTx = testType == TestType.OPTIMISTIC_TX ||
+ testType == TestType.OPTIMISTIC_SERIALIZABLE_TX ||
+ testType == TestType.PESSIMISTIC_TX;
if (useTx || testType == TestType.LOCK) {
assertEquals(TRANSACTIONAL,
@@ -1675,7 +1685,10 @@ public class IgniteCacheClientNodeChangingTopologyTest extends GridCommonAbstrac
TransactionConcurrency concurrency =
testType == TestType.PESSIMISTIC_TX ? PESSIMISTIC : OPTIMISTIC;
- try (Transaction tx = txs.txStart(concurrency, REPEATABLE_READ)) {
+ TransactionIsolation isolation = testType == TestType.OPTIMISTIC_SERIALIZABLE_TX ?
+ SERIALIZABLE : REPEATABLE_READ;
+
+ try (Transaction tx = txs.txStart(concurrency, isolation)) {
cache.putAll(map);
tx.commit();
@@ -1982,6 +1995,9 @@ public class IgniteCacheClientNodeChangingTopologyTest extends GridCommonAbstrac
OPTIMISTIC_TX,
/** */
+ OPTIMISTIC_SERIALIZABLE_TX,
+
+ /** */
PESSIMISTIC_TX,
/** */
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
index f76361a..20ee904 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedTxMultiThreadedSelfTest.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.processors.cache.distributed.near;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.configuration.NearCacheConfiguration;
import org.apache.ignite.internal.processors.cache.GridCacheProcessor;
import org.apache.ignite.internal.processors.cache.IgniteTxMultiThreadedAbstractTest;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
@@ -55,6 +56,8 @@ public class GridCachePartitionedTxMultiThreadedSelfTest extends IgniteTxMultiTh
cc.setWriteSynchronizationMode(FULL_SYNC);
+ cc.setNearConfiguration(nearEnabled() ? new NearCacheConfiguration() : null);
+
c.setCacheConfiguration(cc);
TcpDiscoverySpi disco = new TcpDiscoverySpi();
@@ -69,6 +72,13 @@ public class GridCachePartitionedTxMultiThreadedSelfTest extends IgniteTxMultiTh
return c;
}
+ /**
+ * @return {@code True} if near cache is enabled.
+ */
+ protected boolean nearEnabled() {
+ return true;
+ }
+
/** {@inheritDoc} */
@Override protected int gridCount() {
return 3;
http://git-wip-us.apache.org/repos/asf/ignite/blob/5993d269/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
index bd24e51..9b1c338 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
@@ -33,6 +33,7 @@ import org.apache.ignite.internal.processors.cache.IgniteDynamicCacheAndNodeStop
import org.apache.ignite.internal.processors.cache.distributed.CacheLoadingConcurrentGridStartSelfTest;
import org.apache.ignite.internal.processors.cache.distributed.GridCachePartitionNotLoadedEventSelfTest;
import org.apache.ignite.internal.processors.cache.distributed.GridCachePartitionedAffinityFilterSelfTest;
+import org.apache.ignite.internal.processors.cache.distributed.GridCachePartitionedNearDisabledTxMultiThreadedSelfTest;
import org.apache.ignite.internal.processors.cache.distributed.GridCacheTransformEventSelfTest;
import org.apache.ignite.internal.processors.cache.distributed.IgniteCacheClientNodeChangingTopologyTest;
import org.apache.ignite.internal.processors.cache.distributed.IgniteCacheClientNodePartitionsExchangeTest;
@@ -187,6 +188,7 @@ public class IgniteCacheTestSuite2 extends TestSuite {
suite.addTest(new TestSuite(GridCacheDhtInternalEntrySelfTest.class));
suite.addTest(new TestSuite(GridCacheDhtMappingSelfTest.class));
suite.addTest(new TestSuite(GridCachePartitionedTxMultiThreadedSelfTest.class));
+ suite.addTest(new TestSuite(GridCachePartitionedNearDisabledTxMultiThreadedSelfTest.class));
suite.addTest(new TestSuite(GridCacheDhtPreloadSelfTest.class));
suite.addTest(new TestSuite(GridCacheDhtPreloadOffHeapSelfTest.class));
suite.addTest(new TestSuite(GridCacheDhtPreloadBigDataSelfTest.class));