This is an automated email from the ASF dual-hosted git repository.
av pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 41b0fa192b7 IGNITE-20433 cctx.mvccEnabled() removal (#10938)
41b0fa192b7 is described below
commit 41b0fa192b7a77c7574fe2d03eed295cf6cc2471
Author: Anton Vinogradov <[email protected]>
AuthorDate: Wed Sep 20 21:54:42 2023 +0300
IGNITE-20433 cctx.mvccEnabled() removal (#10938)
---
.../query/calcite/exec/ddl/DdlCommandHandler.java | 5 -
.../query/index/sorted/inline/InlineIndexImpl.java | 4 +-
.../management/cache/ValidateIndexesClosure.java | 45 +-----
.../management/cdc/CdcCacheDataResendTask.java | 3 -
.../managers/indexing/IndexesRebuildTask.java | 4 +-
.../cache/GatewayProtectedCacheProxy.java | 8 -
.../processors/cache/GridCacheAdapter.java | 80 ++--------
.../processors/cache/GridCacheContext.java | 11 +-
.../processors/cache/GridCacheEntryEx.java | 5 -
.../processors/cache/GridCacheMapEntry.java | 173 +++------------------
.../processors/cache/GridCacheProcessor.java | 2 -
.../internal/processors/cache/GridCacheUtils.java | 3 +-
.../processors/cache/IgniteCacheProxyImpl.java | 4 -
.../GridDistributedTxRemoteAdapter.java | 2 +-
.../cache/distributed/dht/GridDhtCacheAdapter.java | 30 +---
.../cache/distributed/dht/GridDhtCacheEntry.java | 5 +-
.../cache/distributed/dht/GridDhtGetFuture.java | 14 --
.../distributed/dht/GridDhtGetSingleFuture.java | 14 --
.../cache/distributed/dht/GridDhtLockFuture.java | 10 +-
.../dht/GridDhtTxAbstractEnlistFuture.java | 2 -
.../distributed/dht/GridDhtTxFinishFuture.java | 6 +-
.../distributed/dht/GridDhtTxPrepareFuture.java | 18 +--
.../distributed/dht/GridPartitionedGetFuture.java | 11 +-
.../dht/GridPartitionedSingleGetFuture.java | 7 +-
.../dht/colocated/GridDhtColocatedCache.java | 41 +----
.../dht/preloader/GridDhtForceKeysFuture.java | 12 +-
.../near/GridNearPessimisticTxPrepareFuture.java | 64 +++-----
.../cache/distributed/near/GridNearTxLocal.java | 129 +--------------
.../near/GridNearTxPrepareFutureAdapter.java | 2 +-
.../processors/cache/mvcc/MvccProcessorImpl.java | 10 +-
.../internal/processors/cache/mvcc/MvccUtils.java | 61 +-------
.../query/GridCacheDistributedQueryManager.java | 4 -
.../cache/query/GridCacheQueryAdapter.java | 17 +-
.../cache/query/GridCacheQueryManager.java | 2 -
.../continuous/CacheContinuousQueryHandler.java | 13 +-
.../IgniteTxImplicitSingleStateImpl.java | 10 +-
.../cache/transactions/IgniteTxLocalAdapter.java | 19 +--
.../cache/transactions/IgniteTxManager.java | 8 +-
.../transactions/IgniteTxRemoteStateAdapter.java | 10 +-
.../cache/transactions/IgniteTxState.java | 5 -
.../cache/transactions/IgniteTxStateImpl.java | 16 +-
.../processors/cache/GridCacheTestEntryEx.java | 6 -
.../IgniteCacheFailedUpdateResponseTest.java | 5 +-
.../processors/query/h2/CommandProcessor.java | 4 -
.../internal/processors/query/h2/H2Utils.java | 39 -----
.../processors/query/h2/IgniteH2Indexing.java | 91 ++---------
.../query/h2/database/H2PkHashIndex.java | 2 -
.../processors/query/h2/database/H2TreeIndex.java | 2 -
.../query/h2/sql/GridSqlQueryParser.java | 3 -
.../query/h2/sql/GridSqlQuerySplitter.java | 4 +-
.../Cache/CachePartitionedTest.cs | 34 ----
51 files changed, 135 insertions(+), 944 deletions(-)
diff --git
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ddl/DdlCommandHandler.java
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ddl/DdlCommandHandler.java
index 3a6b00c8fa1..e7c268d8918 100644
---
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ddl/DdlCommandHandler.java
+++
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ddl/DdlCommandHandler.java
@@ -277,11 +277,6 @@ public class DdlCommandHandler {
assert cctx != null;
- if (cctx.mvccEnabled()) {
- throw new IgniteSQLException("Cannot drop column(s) with
enabled MVCC. " +
- "Operation is unsupported at the moment.",
IgniteQueryErrorCode.UNSUPPORTED_OPERATION);
- }
-
if (QueryUtils.isSqlType(typeDesc.valueClass())) {
throw new SchemaOperationException("Cannot drop column(s)
because table was created " +
"with WRAP_VALUE=false option.");
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/cache/query/index/sorted/inline/InlineIndexImpl.java
b/modules/core/src/main/java/org/apache/ignite/internal/cache/query/index/sorted/inline/InlineIndexImpl.java
index fd374b150d2..d57c76d9cc0 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/cache/query/index/sorted/inline/InlineIndexImpl.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/cache/query/index/sorted/inline/InlineIndexImpl.java
@@ -222,7 +222,7 @@ public class InlineIndexImpl extends AbstractIndex
implements InlineIndex {
/** */
private boolean isSingleRowLookup(IndexRow lower, IndexRow upper) throws
IgniteCheckedException {
- return !cctx.mvccEnabled() && def.primary() && lower != null &&
isFullSchemaSearch(lower) && checkRowsTheSame(lower, upper);
+ return def.primary() && lower != null && isFullSchemaSearch(lower) &&
checkRowsTheSame(lower, upper);
}
/**
@@ -475,8 +475,6 @@ public class InlineIndexImpl extends AbstractIndex
implements InlineIndex {
MvccSnapshot v = qryCtx.mvccSnapshot();
- assert !cctx.mvccEnabled() || v != null;
-
if (cacheFilter == null && v == null && qryCtx.rowFilter() == null)
return null;
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/management/cache/ValidateIndexesClosure.java
b/modules/core/src/main/java/org/apache/ignite/internal/management/cache/ValidateIndexesClosure.java
index 4bc27a679af..1e26da8e4ce 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/management/cache/ValidateIndexesClosure.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/management/cache/ValidateIndexesClosure.java
@@ -53,9 +53,6 @@ import
org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
import org.apache.ignite.internal.processors.cache.KeyCacheObject;
import org.apache.ignite.internal.processors.cache.PartitionUpdateCounter;
import
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccQueryTracker;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccSnapshot;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccUtils;
import org.apache.ignite.internal.processors.cache.persistence.CacheDataRow;
import
org.apache.ignite.internal.processors.cache.persistence.IgniteCacheDatabaseSharedManager;
import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStore;
@@ -535,24 +532,7 @@ public class ValidateIndexesClosure implements
IgniteCallable<ValidateIndexesJob
partRes = new ValidateIndexesPartitionResult();
- boolean hasMvcc =
grpCtx.caches().stream().anyMatch(GridCacheContext::mvccEnabled);
-
- if (hasMvcc) {
- for (GridCacheContext<?, ?> context : grpCtx.caches()) {
- IndexQueryContext qryCtx = mvccQueryContext(context);
-
- GridIterator<CacheDataRow> iterator =
grpCtx.offheap().cachePartitionIterator(
- context.cacheId(),
- part.id(),
- qryCtx.mvccSnapshot(),
- null
- );
-
- processPartIterator(grpCtx, partRes, qryCtx, iterator);
- }
- }
- else
- processPartIterator(grpCtx, partRes, null,
grpCtx.offheap().partitionIterator(part.id()));
+ processPartIterator(grpCtx, partRes, null,
grpCtx.offheap().partitionIterator(part.id()));
PartitionUpdateCounter updateCntrAfter =
part.dataStore().partUpdateCounter();
@@ -702,27 +682,6 @@ public class ValidateIndexesClosure implements
IgniteCallable<ValidateIndexesJob
}
}
- /**
- * Get QueryContext for MVCC snapshot.
- *
- * @param cctx Cache context.
- * @return QueryContext for MVCC snapshot.
- * @throws IgniteCheckedException If failed.
- */
- private IndexQueryContext mvccQueryContext(GridCacheContext<?, ?> cctx)
throws IgniteCheckedException {
- boolean mvccEnabled = cctx.mvccEnabled();
-
- if (mvccEnabled) {
- MvccQueryTracker tracker = MvccUtils.mvccTracker(cctx, true);
-
- MvccSnapshot mvccSnapshot = tracker.snapshot();
-
- return new IndexQueryContext(cacheName -> null, null,
mvccSnapshot);
- }
-
- return null;
- }
-
/**
*
*/
@@ -791,7 +750,7 @@ public class ValidateIndexesClosure implements
IgniteCallable<ValidateIndexesJob
GridCursor<IndexRow> cursor = null;
try {
- cursor = idx.find(null, null, true, true,
mvccQueryContext(cacheCtxWithIdx.get1()));
+ cursor = idx.find(null, null, true, true, null);
if (cursor == null)
throw new IgniteCheckedException("Can't iterate through index:
" + idx);
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/management/cdc/CdcCacheDataResendTask.java
b/modules/core/src/main/java/org/apache/ignite/internal/management/cdc/CdcCacheDataResendTask.java
index b14c872170b..ab81ce8229c 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/management/cdc/CdcCacheDataResendTask.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/management/cdc/CdcCacheDataResendTask.java
@@ -142,9 +142,6 @@ public class CdcCacheDataResendTask extends
VisorMultiNodeTask<CdcResendCommandA
", dataRegionName=" +
cache.context().dataRegion().config().getName() + ']');
}
- if (cache.context().mvccEnabled())
- throw new UnsupportedOperationException("The
TRANSACTIONAL_SNAPSHOT mode is not supported.");
-
caches.add(cache);
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/IndexesRebuildTask.java
b/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/IndexesRebuildTask.java
index 847fcce196b..cc6d4f6fe42 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/IndexesRebuildTask.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/IndexesRebuildTask.java
@@ -71,10 +71,8 @@ public class IndexesRebuildTask {
boolean recreate = pageStore == null ||
!pageStore.hasIndexStore(cctx.groupId());
if (recreate) {
- boolean mvccEnabled = cctx.mvccEnabled();
-
// If there are no index store, rebuild all indexes.
- clo = row -> cctx.queries().store(row, null, mvccEnabled);
+ clo = row -> cctx.queries().store(row, null, false);
}
else {
Collection<InlineIndex> toRebuild =
cctx.kernalContext().indexProcessor().treeIndexes(cctx.name(), !force);
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GatewayProtectedCacheProxy.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GatewayProtectedCacheProxy.java
index 09cec58727e..dab37b7c532 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GatewayProtectedCacheProxy.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GatewayProtectedCacheProxy.java
@@ -51,7 +51,6 @@ import org.apache.ignite.cache.query.SqlFieldsQuery;
import org.apache.ignite.cluster.ClusterGroup;
import org.apache.ignite.internal.AsyncSupportAdapter;
import org.apache.ignite.internal.GridKernalState;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccUtils;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.internal.A;
import org.apache.ignite.lang.IgniteBiPredicate;
@@ -145,8 +144,6 @@ public class GatewayProtectedCacheProxy<K, V> extends
AsyncSupportAdapter<Ignite
CacheOperationGate opGate = onEnter();
try {
- MvccUtils.verifyMvccOperationSupport(delegate.context(),
"withExpiryPolicy");
-
return new GatewayProtectedCacheProxy<>(delegate,
opCtx.withExpiryPolicy(plc), lock);
}
finally {
@@ -239,11 +236,6 @@ public class GatewayProtectedCacheProxy<K, V> extends
AsyncSupportAdapter<Ignite
CacheOperationGate opGate = onEnter();
try {
- if (context().mvccEnabled()) {
- throw new UnsupportedOperationException(
- "The TRANSACTIONAL_SNAPSHOT mode is incompatible with the
read-repair feature.");
- }
-
if (context().isNear())
throw new UnsupportedOperationException("Read-repair is
incompatible with near caches.");
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 5aab76e7912..6a54eee0976 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
@@ -102,7 +102,6 @@ import
org.apache.ignite.internal.processors.cache.distributed.near.consistency.
import
org.apache.ignite.internal.processors.cache.distributed.near.consistency.IgniteConsistencyViolationException;
import org.apache.ignite.internal.processors.cache.dr.GridCacheDrInfo;
import org.apache.ignite.internal.processors.cache.mvcc.MvccSnapshot;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccUtils;
import org.apache.ignite.internal.processors.cache.persistence.CacheDataRow;
import
org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
import org.apache.ignite.internal.processors.cache.transactions.IgniteTxKey;
@@ -176,7 +175,6 @@ import static
org.apache.ignite.internal.processors.task.TaskExecutionOptions.op
import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC;
import static
org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
import static
org.apache.ignite.transactions.TransactionIsolation.READ_COMMITTED;
-import static
org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ;
import static org.apache.ignite.transactions.TransactionIsolation.SERIALIZABLE;
/**
@@ -767,16 +765,10 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
IgniteCacheOffheapManager offheapMgr = ctx.isNear() ?
ctx.near().dht().context().offheap() : ctx.offheap();
- MvccSnapshot mvccSnapshot = ctx.mvccEnabled() ?
MvccUtils.MVCC_MAX_SNAPSHOT : null;
-
- its.add(offheapMgr.cacheEntriesIterator(ctx, modes.primary,
modes.backup, topVer, ctx.keepBinary(),
- mvccSnapshot, null));
+ its.add(offheapMgr.cacheEntriesIterator(ctx, modes.primary,
modes.backup, topVer, ctx.keepBinary(), null, null));
}
}
else if (modes.heap) {
- if (ctx.mvccEnabled())
- return F.emptyIterator();
-
if (modes.near && ctx.isNear())
its.add(ctx.near().nearEntries().iterator());
@@ -876,9 +868,7 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
ctx.shared().database().checkpointReadLock();
try {
- cacheVal = ctx.mvccEnabled()
- ? e.mvccPeek(modes.heap && !modes.offheap)
- : e.peek(modes.heap, modes.offheap, topVer, null);
+ cacheVal = e.peek(modes.heap, modes.offheap, topVer, null);
}
catch (GridCacheEntryRemovedException ignore) {
if (log.isDebugEnabled())
@@ -1065,9 +1055,6 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
@Override public void clearLocally(boolean srv, boolean near, boolean
readers) {
ctx.checkSecurity(SecurityPermission.CACHE_REMOVE);
- //TODO IGNITE-7952
- MvccUtils.verifyMvccOperationSupport(ctx, "Clear");
-
List<GridCacheClearAllRunnable<K, V>> jobs = splitClearLocally(srv,
near, readers);
if (!F.isEmpty(jobs)) {
@@ -1138,9 +1125,6 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
* @throws IgniteCheckedException In case of error.
*/
private void clear(@Nullable Set<? extends K> keys) throws
IgniteCheckedException {
- //TODO IGNITE-7952
- MvccUtils.verifyMvccOperationSupport(ctx, "Clear");
-
ctx.shared().cache().checkReadOnlyState("clear", ctx.config());
executeClearTask(keys, false).get();
@@ -1152,9 +1136,6 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
* @return Future.
*/
private IgniteInternalFuture<?> clearAsync(@Nullable final Set<? extends
K> keys) {
- //TODO IGNITE-7952
- MvccUtils.verifyMvccOperationSupport(ctx, "Clear");
-
ctx.shared().cache().checkReadOnlyState("clear", ctx.config());
return executeClearTask(keys, false).chainCompose(fut ->
executeClearTask(keys, true));
@@ -1216,9 +1197,6 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
if (F.isEmpty(keys))
return;
- //TODO IGNITE-7952
- MvccUtils.verifyMvccOperationSupport(ctx, "Clear");
-
GridCacheVersion obsoleteVer = nextVersion();
for (KeyCacheObject key : keys) {
@@ -1948,8 +1926,8 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
tx = checkCurrentTx();
}
- if (ctx.mvccEnabled() || tx == null || tx.implicit()) {
- assert (mvccSnapshot == null) == !ctx.mvccEnabled();
+ if (tx == null || tx.implicit()) {
+ assert mvccSnapshot == null;
Map<KeyCacheObject, EntryGetResult> misses = null;
@@ -2304,10 +2282,7 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
/** */
protected GridNearTxLocal checkCurrentTx() {
- if (!ctx.mvccEnabled())
- return ctx.tm().threadLocalTx(ctx);
-
- return MvccUtils.tx(ctx.kernalContext(), null);
+ return ctx.tm().threadLocalTx(ctx);
}
/**
@@ -3486,9 +3461,6 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
if (F.isEmpty(keys))
return true;
- //TODO: IGNITE-9324: add explicit locks support.
- MvccUtils.verifyMvccOperationSupport(ctx, "Lock");
-
IgniteInternalFuture<Boolean> fut = lockAllAsync(keys, timeout);
boolean isInterrupted = false;
@@ -3530,9 +3502,6 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
@Override public IgniteInternalFuture<Boolean> lockAsync(K key, long
timeout) {
A.notNull(key, "key");
- //TODO: IGNITE-9324: add explicit locks support.
- MvccUtils.verifyMvccOperationSupport(ctx, "Lock");
-
return lockAllAsync(Collections.singletonList(key), timeout);
}
@@ -3633,9 +3602,6 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
/** {@inheritDoc} */
@Override public void localLoadCache(final IgniteBiPredicate<K, V> p,
Object[] args)
throws IgniteCheckedException {
- //TODO IGNITE-7954
- MvccUtils.verifyMvccOperationSupport(ctx, "Load");
-
final boolean replicate = ctx.isDrEnabled();
final AffinityTopologyVersion topVer =
ctx.affinity().affinityTopologyVersion();
@@ -3771,9 +3737,6 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
for (Object key : keys)
A.notNull(key, "key");
- //TODO IGNITE-7954
- MvccUtils.verifyMvccOperationSupport(ctx, "Load");
-
CacheOperationContext opCtx = ctx.operationContextPerCall();
ExpiryPolicy plc = opCtx != null ? opCtx.expiry() : null;
@@ -3845,9 +3808,6 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
*/
public void localLoad(Collection<? extends K> keys, @Nullable ExpiryPolicy
plc, final boolean keepBinary)
throws IgniteCheckedException {
- //TODO IGNITE-7954
- MvccUtils.verifyMvccOperationSupport(ctx, "Load");
-
final boolean replicate = ctx.isDrEnabled();
final AffinityTopologyVersion topVer =
ctx.affinity().affinityTopologyVersion();
@@ -3918,9 +3878,6 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
assert !F.isEmpty(nodes) : "There are not datanodes fo cache: " +
ctx.name();
- //TODO IGNITE-7954
- MvccUtils.verifyMvccOperationSupport(ctx, "Load");
-
final boolean keepBinary = opCtx != null && opCtx.isKeepBinary();
IgniteInternalFuture<?> fut = ctx.kernalContext().closure().callAsync(
@@ -4245,11 +4202,11 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
true,
op.single(),
ctx.systemTx() ? ctx : null,
- ctx.mvccEnabled() ? PESSIMISTIC : OPTIMISTIC,
- ctx.mvccEnabled() ? REPEATABLE_READ : READ_COMMITTED,
+ OPTIMISTIC,
+ READ_COMMITTED,
tCfg.getDefaultTxTimeout(),
!ctx.skipStore(),
- ctx.mvccEnabled(),
+ false,
0,
null
);
@@ -4363,11 +4320,11 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
true,
op.single(),
ctx.systemTx() ? ctx : null,
- ctx.mvccEnabled() ? PESSIMISTIC : OPTIMISTIC,
- ctx.mvccEnabled() ? REPEATABLE_READ : READ_COMMITTED,
+ OPTIMISTIC,
+ READ_COMMITTED,
txCfg.getDefaultTxTimeout(),
!skipStore,
- ctx.mvccEnabled(),
+ false,
0,
null);
@@ -4635,9 +4592,6 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
private boolean clearLocally0(K key, boolean readers) {
ctx.shared().cache().checkReadOnlyState("clear", ctx.config());
- //TODO IGNITE-7952
- MvccUtils.verifyMvccOperationSupport(ctx, "Clear");
-
ctx.checkSecurity(SecurityPermission.CACHE_REMOVE);
GridCacheVersion obsoleteVer = nextVersion();
@@ -4669,9 +4623,6 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
@Override public boolean evict(K key) {
A.notNull(key, "key");
- //TODO IGNITE-7956
- MvccUtils.verifyMvccOperationSupport(ctx, "Evict");
-
return evictx(key, nextVersion(), CU.empty0());
}
@@ -4682,9 +4633,6 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
if (F.isEmpty(keys))
return;
- //TODO IGNITE-7956
- MvccUtils.verifyMvccOperationSupport(ctx, "Evict");
-
GridCacheVersion obsoleteVer = nextVersion();
try {
@@ -5392,11 +5340,11 @@ public abstract class GridCacheAdapter<K, V> implements
IgniteInternalCache<K, V
true,
op.single(),
ctx.systemTx() ? ctx : null,
- ctx.mvccEnabled() ? PESSIMISTIC : OPTIMISTIC,
- ctx.mvccEnabled() ? REPEATABLE_READ : READ_COMMITTED,
+ OPTIMISTIC,
+ READ_COMMITTED,
CU.transactionConfiguration(ctx,
ctx.kernalContext().config()).getDefaultTxTimeout(),
opCtx == null || !opCtx.skipStore(),
- ctx.mvccEnabled(),
+ false,
0,
null);
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
index fb48c74a141..6136c24ce72 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
@@ -114,6 +114,7 @@ import org.apache.ignite.marshaller.Marshaller;
import org.apache.ignite.plugin.security.SecurityException;
import org.apache.ignite.plugin.security.SecurityPermission;
import org.jetbrains.annotations.Nullable;
+
import static
org.apache.ignite.IgniteSystemProperties.IGNITE_DISABLE_TRIGGERING_CACHE_INTERCEPTOR_ON_CONFLICT;
import static
org.apache.ignite.IgniteSystemProperties.IGNITE_READ_LOAD_BALANCING;
import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
@@ -2115,15 +2116,7 @@ public class GridCacheContext<K, V> implements
Externalizable {
* @return {@code True} if it is possible to directly read offheap instead
of using {@link GridCacheEntryEx#innerGet}.
*/
public boolean readNoEntry(@Nullable IgniteCacheExpiryPolicy expiryPlc,
boolean readers) {
- return mvccEnabled()
- || (!config().isOnheapCacheEnabled() && !readers && expiryPlc
== null && config().getPlatformCacheConfiguration() == null);
- }
-
- /**
- * @return {@code True} if mvcc is enabled for cache.
- */
- public boolean mvccEnabled() {
- return grp.mvccEnabled();
+ return !config().isOnheapCacheEnabled() && !readers && expiryPlc ==
null && config().getPlatformCacheConfiguration() == null;
}
/**
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
index ba15b79bab1..d08b379c692 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
@@ -189,11 +189,6 @@ public interface GridCacheEntryEx {
*/
@Nullable public GridCacheEntryInfo info();
- /**
- * @return Entry info for each MVCC version.
- */
- @Nullable public List<GridCacheEntryInfo> allVersionsInfo() throws
IgniteCheckedException;
-
/**
* Invalidates this entry.
*
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index 70b4c5870e4..cf7815a465b 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@ -88,7 +88,6 @@ import
org.apache.ignite.internal.transactions.IgniteTxSerializationCheckedExcep
import org.apache.ignite.internal.util.IgniteTree;
import org.apache.ignite.internal.util.future.GridFutureAdapter;
import org.apache.ignite.internal.util.lang.GridClosureException;
-import org.apache.ignite.internal.util.lang.GridCursor;
import org.apache.ignite.internal.util.lang.GridMetadataAwareAdapter;
import org.apache.ignite.internal.util.lang.GridTuple;
import org.apache.ignite.internal.util.lang.GridTuple3;
@@ -125,7 +124,6 @@ import static
org.apache.ignite.internal.processors.cache.GridCacheUpdateAtomicR
import static
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState.RENTING;
import static
org.apache.ignite.internal.processors.cache.mvcc.MvccUtils.MVCC_MAX_SNAPSHOT;
import static
org.apache.ignite.internal.processors.cache.mvcc.MvccUtils.compareIgnoreOpCounter;
-import static
org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.RowData.NO_KEY;
import static
org.apache.ignite.internal.processors.cache.version.GridCacheVersionEx.addConflictVersion;
import static org.apache.ignite.internal.processors.dr.GridDrType.DR_NONE;
@@ -443,77 +441,6 @@ public abstract class GridCacheMapEntry extends
GridMetadataAwareAdapter impleme
return info;
}
- /** {@inheritDoc} */
- @Nullable @Override public List<GridCacheEntryInfo> allVersionsInfo()
throws IgniteCheckedException {
- assert cctx.mvccEnabled();
-
- lockEntry();
-
- try {
- if (obsolete())
- return Collections.emptyList();
-
- GridCursor<? extends CacheDataRow> cur =
-
cctx.offheap().dataStore(localPartition()).mvccAllVersionsCursor(cctx, key,
NO_KEY);
-
- List<GridCacheEntryInfo> res = new ArrayList<>();
-
- while (cur.next()) {
- CacheDataRow row = cur.get();
-
- GridCacheMvccEntryInfo info = new GridCacheMvccEntryInfo();
-
- info.key(key);
- info.value(row.value());
- info.cacheId(cctx.cacheId());
- info.version(row.version());
- info.setNew(false);
- info.setDeleted(false);
-
- byte txState = row.mvccTxState() != TxState.NA ?
row.mvccTxState() :
- MvccUtils.state(cctx, row.mvccCoordinatorVersion(),
row.mvccCounter(),
- row.mvccOperationCounter());
-
- if (txState == TxState.ABORTED)
- continue;
-
- info.mvccVersion(row.mvccCoordinatorVersion(),
row.mvccCounter(), row.mvccOperationCounter());
- info.mvccTxState(txState);
-
- byte newTxState = row.newMvccTxState() != TxState.NA ?
row.newMvccTxState() :
- MvccUtils.state(cctx, row.newMvccCoordinatorVersion(),
row.newMvccCounter(),
- row.newMvccOperationCounter());
-
- if (newTxState != TxState.ABORTED) {
- info.newMvccVersion(row.newMvccCoordinatorVersion(),
- row.newMvccCounter(),
- row.newMvccOperationCounter());
-
- info.newMvccTxState(newTxState);
- }
-
- long expireTime = row.expireTime();
-
- long ttl;
-
- ttl = expireTime == CU.EXPIRE_TIME_ETERNAL ? CU.TTL_ETERNAL :
expireTime - U.currentTimeMillis();
-
- if (ttl < 0)
- ttl = CU.TTL_MINIMUM;
-
- info.ttl(ttl);
- info.expireTime(expireTime);
-
- res.add(info);
- }
-
- return res;
- }
- finally {
- unlockEntry();
- }
- }
-
/** {@inheritDoc} */
@Override public final CacheObject unswap() throws IgniteCheckedException,
GridCacheEntryRemovedException {
return unswap(true);
@@ -1028,10 +955,7 @@ public abstract class GridCacheMapEntry extends
GridMetadataAwareAdapter impleme
deletedUnlocked(false);
}
else {
- if (cctx.mvccEnabled())
- cctx.offheap().mvccRemoveAll(this);
- else
- removeValue();
+ removeValue();
if (cctx.deferredDelete() && !isInternal() &&
!detached() && !deletedUnlocked())
deletedUnlocked(true);
@@ -2342,10 +2266,7 @@ public abstract class GridCacheMapEntry extends
GridMetadataAwareAdapter impleme
", val=" + val + ']');
}
- if (cctx.mvccEnabled())
- cctx.offheap().mvccRemoveAll(this);
- else
- removeValue();
+ removeValue();
}
finally {
unlockEntry();
@@ -2870,10 +2791,7 @@ public abstract class GridCacheMapEntry extends
GridMetadataAwareAdapter impleme
long delta = expireTime - U.currentTimeMillis();
if (delta <= 0) {
- if (cctx.mvccEnabled())
- cctx.offheap().mvccRemoveAll(this);
- else
- removeValue();
+ removeValue();
return true;
}
@@ -3048,45 +2966,11 @@ public abstract class GridCacheMapEntry extends
GridMetadataAwareAdapter impleme
}
}
- if (cctx.mvccEnabled()) {
- assert !preload;
-
- cctx.offheap().mvccInitialValue(this, val, ver,
expTime, mvccVer, newMvccVer);
- }
- else
- storeValue(val, expTime, ver, null, row);
- }
- }
- else {
- if (cctx.mvccEnabled()) {
- // cannot identify whether the entry is exist on the fly
- unswap(false);
-
- if (update = p.apply(null)) {
- // If entry is already unswapped and we are modifying
it, we must run deletion callbacks for old value.
- long oldExpTime = expireTimeUnlocked();
- long delta = (oldExpTime == 0 ? 0 : oldExpTime -
U.currentTimeMillis());
-
- if (delta < 0) {
- if (onExpired(this.val, null)) {
- if (cctx.deferredDelete()) {
- deferred = true;
- oldVer = this.ver;
- }
- else if (val == null)
- obsolete = true;
- }
- }
-
- assert !preload;
-
- cctx.offheap().mvccInitialValue(this, val, ver,
expTime, mvccVer, newMvccVer);
- }
+ storeValue(val, expTime, ver, null, row);
}
- else
- // Optimization to access storage only once.
- update = storeValue(val, expTime, ver, p, row);
}
+ else
+ update = storeValue(val, expTime, ver, p, row);
if (update) {
update(val, expTime, ttl, ver, true);
@@ -3108,34 +2992,18 @@ public abstract class GridCacheMapEntry extends
GridMetadataAwareAdapter impleme
updateCntr = nextPartitionCounter(topVer, true, true,
null);
if (walEnabled) {
- if (cctx.mvccEnabled()) {
- cctx.group().wal().log(new MvccDataRecord(new
MvccDataEntry(
- cctx.cacheId(),
- key,
- val,
- val == null ? DELETE : GridCacheOperation.CREATE,
- null,
- ver,
- expireTime,
- partition(),
- updateCntr,
- mvccVer == null ? MvccUtils.INITIAL_VERSION :
mvccVer
- )));
- }
- else {
- cctx.group().wal().log(new DataRecord(new DataEntry(
- cctx.cacheId(),
- key,
- val,
- val == null ? DELETE : GridCacheOperation.CREATE,
- null,
- ver,
- expireTime,
- partition(),
- updateCntr,
- DataEntry.flags(primary, preload, fromStore)
- )));
- }
+ cctx.group().wal().log(new DataRecord(new DataEntry(
+ cctx.cacheId(),
+ key,
+ val,
+ val == null ? DELETE : GridCacheOperation.CREATE,
+ null,
+ ver,
+ expireTime,
+ partition(),
+ updateCntr,
+ DataEntry.flags(primary, preload, fromStore)
+ )));
}
drReplicate(drType, val, ver, topVer);
@@ -3754,10 +3622,7 @@ public abstract class GridCacheMapEntry extends
GridMetadataAwareAdapter impleme
if (log.isTraceEnabled())
log.trace("onExpired clear [key=" + key + ", entry=" +
System.identityHashCode(this) + ']');
- if (cctx.mvccEnabled())
- cctx.offheap().mvccRemoveAll(this);
- else
- removeValue();
+ removeValue();
if (cctx.events().isRecordable(EVT_CACHE_OBJECT_EXPIRED)) {
cctx.events().addEvent(partition(),
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 61696306fe7..4618afce95b 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -2262,7 +2262,6 @@ public class GridCacheProcessor extends
GridProcessorAdapter {
", mode=" + cfg.getCacheMode() +
", atomicity=" + cfg.getAtomicityMode() +
", backups=" + cfg.getBackups() +
- ", mvcc=" + cacheCtx.mvccEnabled() +
(expPlcInfo != null ? ", " + expPlcInfo : "") + ']');
}
@@ -2345,7 +2344,6 @@ public class GridCacheProcessor extends
GridProcessorAdapter {
", mode=" + cfg.getCacheMode() +
", atomicity=" + cfg.getAtomicityMode() +
", backups=" + cfg.getBackups() +
- ", mvcc=" + cacheCtx.mvccEnabled() +
(expPlcInfo != null ? ", " + expPlcInfo : "") + ']');
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
index f8c27c2f18c..c1680aa89ab 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
@@ -115,6 +115,7 @@ import org.apache.ignite.transactions.TransactionIsolation;
import org.apache.ignite.transactions.TransactionRollbackException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+
import static java.util.Objects.nonNull;
import static
org.apache.ignite.IgniteSystemProperties.IGNITE_SKIP_CONFIGURATION_CONSISTENCY_CHECK;
import static org.apache.ignite.cache.CacheMode.PARTITIONED;
@@ -1807,7 +1808,7 @@ public class GridCacheUtils {
boolean readThrough,
boolean skipVals
) {
- if (cctx.mvccEnabled() || !readThrough || skipVals ||
+ if (!readThrough || skipVals ||
(key != null && !cctx.affinity().backupsByKey(key,
topVer).contains(cctx.localNode())))
return null;
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxyImpl.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxyImpl.java
index 8d9f23f9a00..17628fd4f71 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxyImpl.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxyImpl.java
@@ -79,7 +79,6 @@ import org.apache.ignite.internal.AsyncSupportAdapter;
import org.apache.ignite.internal.IgniteEx;
import org.apache.ignite.internal.IgniteInternalFuture;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccUtils;
import org.apache.ignite.internal.processors.cache.query.CacheQuery;
import org.apache.ignite.internal.processors.cache.query.CacheQueryFuture;
import org.apache.ignite.internal.processors.cache.query.GridCacheQueryType;
@@ -447,9 +446,6 @@ public class IgniteCacheProxyImpl<K, V> extends
AsyncSupportAdapter<IgniteCache<
IgniteInternalCache<K, V> delegate = getDelegateSafe();
GridCacheContext<K, V> ctx = getContextSafe();
- //TODO: IGNITE-9324: add explicit locks support.
- MvccUtils.verifyMvccOperationSupport(ctx, "Lock");
-
return new CacheLockImpl<>(ctx.gate(), delegate,
ctx.operationContextPerCall(), keys);
}
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 9b0f870cbbb..afc98e047cd 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
@@ -490,7 +490,7 @@ public abstract class GridDistributedTxRemoteAdapter
extends IgniteTxAdapter imp
Set<GridDhtLocalPartition> reservedParts = new HashSet<>();
try {
- assert !txState.mvccEnabled() || mvccSnapshot != null
: "Mvcc is not initialized: " + this;
+ assert mvccSnapshot == null;
Collection<IgniteTxEntry> entries = near() ?
allEntries() : writeEntries();
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 a785bb6bc80..d700ae7122e 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
@@ -72,7 +72,6 @@ import
org.apache.ignite.internal.processors.cache.distributed.near.GridNearGetR
import
org.apache.ignite.internal.processors.cache.distributed.near.GridNearSingleGetRequest;
import
org.apache.ignite.internal.processors.cache.distributed.near.GridNearSingleGetResponse;
import org.apache.ignite.internal.processors.cache.mvcc.MvccSnapshot;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccUtils;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import
org.apache.ignite.internal.processors.platform.cache.PlatformCacheEntryFilter;
import org.apache.ignite.internal.processors.security.SecurityUtils;
@@ -233,30 +232,16 @@ public abstract class GridDhtCacheAdapter<K, V> extends
GridDistributedCacheAdap
entry.unswap();
- if (ctx.mvccEnabled()) {
- List<GridCacheEntryInfo> infos =
entry.allVersionsInfo();
+ GridCacheEntryInfo info = entry.info();
- if (infos == null) {
- assert entry.obsolete() : entry;
+ if (info == null) {
+ assert entry.obsolete() : entry;
- continue;
- }
-
- for (int i = 0; i < infos.size(); i++)
- res.addInfo(infos.get(i));
+ continue;
}
- else {
- GridCacheEntryInfo info = entry.info();
-
- if (info == null) {
- assert entry.obsolete() : entry;
- continue;
- }
-
- if (!info.isNew())
- res.addInfo(info);
- }
+ if (!info.isNew())
+ res.addInfo(info);
entry.touch();
@@ -503,9 +488,6 @@ public abstract class GridDhtCacheAdapter<K, V> extends
GridDistributedCacheAdap
return;
}
- //TODO IGNITE-7954
- MvccUtils.verifyMvccOperationSupport(ctx, "Load");
-
final AffinityTopologyVersion topVer =
ctx.affinity().affinityTopologyVersion();
// Version for all loaded entries.
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 f66602d68de..05de436568e 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
@@ -672,10 +672,7 @@ public class GridDhtCacheEntry extends
GridDistributedCacheEntry {
']');
}
- if (cctx.mvccEnabled())
- cctx.offheap().mvccRemoveAll(this);
- else
- removeValue();
+ removeValue();
// Give to GC.
update(null, 0L, 0L, ver, true);
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 2f09a2866d8..97e025ebdf2 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
@@ -185,8 +185,6 @@ public final class GridDhtGetFuture<K, V> extends
GridCompoundIdentityFuture<Col
// TODO get rid of force keys request
https://issues.apache.org/jira/browse/IGNITE-10251
GridDhtFuture<Object> fut = cctx.group().preloader().request(cctx,
keys.keySet(), topVer);
- assert !cctx.mvccEnabled() || fut == null; // Should not happen with
MVCC enabled.
-
if (fut != null) {
if (!F.isEmpty(fut.invalidPartitions())) {
if (retries == null)
@@ -313,18 +311,6 @@ public final class GridDhtGetFuture<K, V> extends
GridCompoundIdentityFuture<Col
try {
int keyPart = cctx.affinity().partition(key);
- if (cctx.mvccEnabled()) {
- boolean noOwners = cctx.topology().owners(keyPart,
topVer).isEmpty();
-
- // Force key request is disabled for MVCC. So if there are no
partition owners for the given key
- // (we have a not strict partition loss policy if we've got
here) we need to set flag forceKeys to true
- // to avoid useless remapping to other non-owning partitions.
For non-mvcc caches the force key request
- // is also useless in the such situations, so the same flow is
here: allegedly we've made a force key
- // request with no results and therefore forceKeys flag may be
set to true here.
- if (noOwners)
- forceKeys = true;
- }
-
GridDhtLocalPartition part = topVer.topologyVersion() > 0 ?
cache().topology().localPartition(keyPart, topVer, true) :
cache().topology().localPartition(keyPart);
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java
index b26ab9178ac..28062800b96 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java
@@ -206,8 +206,6 @@ public final class GridDhtGetSingleFuture<K, V> extends
GridFutureAdapter<GridCa
private void map() {
// TODO Get rid of force keys request
https://issues.apache.org/jira/browse/IGNITE-10251.
if (cctx.group().preloader().needForceKeys()) {
- assert !cctx.mvccEnabled();
-
GridDhtFuture<Object> fut = cctx.group().preloader().request(
cctx,
Collections.singleton(key),
@@ -283,18 +281,6 @@ public final class GridDhtGetSingleFuture<K, V> extends
GridFutureAdapter<GridCa
try {
int keyPart = cctx.affinity().partition(key);
- if (cctx.mvccEnabled()) {
- boolean noOwners = cctx.topology().owners(keyPart,
topVer).isEmpty();
-
- // Force key request is disabled for MVCC. So if there are no
partition owners for the given key
- // (we have a not strict partition loss policy if we've got
here) we need to set flag forceKeys to true
- // to avoid useless remapping to other non-owning partitions.
For non-mvcc caches the force key request
- // is also useless in the such situations, so the same flow is
here: allegedly we've made a force key
- // request with no results and therefore forceKeys flag may be
set to true here.
- if (noOwners)
- forceKeys = true;
- }
-
GridDhtLocalPartition part = topVer.topologyVersion() > 0 ?
cache().topology().localPartition(keyPart, topVer, true) :
cache().topology().localPartition(keyPart);
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
index 95a32f2a314..d937006ce13 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
@@ -55,8 +55,6 @@ import
org.apache.ignite.internal.processors.cache.distributed.GridDistributedLo
import
org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture;
import
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtInvalidPartitionException;
import
org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheAdapter;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccUpdateVersionAware;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccVersionAware;
import org.apache.ignite.internal.processors.cache.mvcc.txlog.TxState;
import
org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry;
@@ -1351,10 +1349,10 @@ public final class GridDhtLockFuture extends
GridCacheCompoundIdentityFuture<Boo
try {
if (entry.initialValue(info.value(),
info.version(),
- cctx.mvccEnabled() ?
((MvccVersionAware)info).mvccVersion() : null,
- cctx.mvccEnabled() ?
((MvccUpdateVersionAware)info).newMvccVersion() : null,
- cctx.mvccEnabled() ?
((MvccVersionAware)entry).mvccTxState() : TxState.NA,
- cctx.mvccEnabled() ?
((MvccUpdateVersionAware)entry).newMvccTxState() : TxState.NA,
+ null,
+ null,
+ TxState.NA,
+ TxState.NA,
info.ttl(),
info.expireTime(),
true,
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxAbstractEnlistFuture.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxAbstractEnlistFuture.java
index 432f2f31cd5..4cc5310abc1 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxAbstractEnlistFuture.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxAbstractEnlistFuture.java
@@ -337,8 +337,6 @@ public abstract class GridDhtTxAbstractEnlistFuture<T>
extends GridCacheFutureAd
else // Nothing to do for single update.
assert tx.txState().cacheIds().contains(cctx.cacheId()) &&
tx.txState().cacheIds().size() == 1;
- tx.markQueryEnlisted();
-
this.it = it;
}
catch (Throwable e) {
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 e53eacc2b74..387eaeff6ce 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
@@ -261,7 +261,7 @@ public final class GridDhtTxFinishFuture<K, V> extends
GridCacheCompoundIdentity
if (this.tx.syncMode() != PRIMARY_SYNC)
this.tx.sendFinishReply(finishErr);
- if (!this.tx.txState().mvccEnabled() && !commit &&
shouldApplyCountersOnRollbackError(finishErr)) {
+ if (!commit &&
shouldApplyCountersOnRollbackError(finishErr)) {
TxCounters txCounters = this.tx.txCounters(false);
if (txCounters != null) {
@@ -319,7 +319,7 @@ public final class GridDhtTxFinishFuture<K, V> extends
GridCacheCompoundIdentity
MTC.supportContinual(span =
cctx.kernalContext().tracing().create(TX_DHT_FINISH, MTC.span()))) {
boolean sync;
- assert !tx.txState().mvccEnabled() || tx.mvccSnapshot() != null;
+ assert tx.mvccSnapshot() == null;
if (!F.isEmpty(dhtMap) || !F.isEmpty(nearMap))
sync = finish(commit, dhtMap, nearMap);
@@ -435,8 +435,6 @@ public final class GridDhtTxFinishFuture<K, V> extends
GridCacheCompoundIdentity
if (tx.onePhaseCommit())
return false;
- assert !commit || !tx.txState().mvccEnabled() || tx.mvccSnapshot() !=
null || F.isEmpty(tx.writeEntries());
-
boolean sync = tx.syncMode() == FULL_SYNC;
if (tx.explicitLock() || tx.queryEnlisted())
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 d3ea93089ba..4f8cbc9aabf 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
@@ -68,8 +68,6 @@ import
org.apache.ignite.internal.processors.cache.distributed.near.GridNearCach
import
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxPrepareRequest;
import
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxPrepareResponse;
import org.apache.ignite.internal.processors.cache.mvcc.MvccSnapshot;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccUpdateVersionAware;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccVersionAware;
import org.apache.ignite.internal.processors.cache.mvcc.txlog.TxState;
import
org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry;
@@ -1350,11 +1348,7 @@ public final class GridDhtTxPrepareFuture extends
GridCacheCompoundFuture<Ignite
return;
if (last) {
- if (!tx.txState().mvccEnabled()) {
- /** For MVCC counters are assigned on enlisting. */
- /** See usage of {@link
TxCounters#incrementUpdateCounter(int, int)} ) */
- tx.calculatePartitionUpdateCounters();
- }
+ tx.calculatePartitionUpdateCounters();
recheckOnePhaseCommit();
@@ -1394,8 +1388,6 @@ public final class GridDhtTxPrepareFuture extends
GridCacheCompoundFuture<Ignite
*
*/
private void sendPrepareRequests() {
- assert !tx.txState().mvccEnabled() || !tx.onePhaseCommit() ||
tx.mvccSnapshot() != null;
-
int miniId = 0;
assert tx.transactionNodes() != null;
@@ -1989,10 +1981,10 @@ public final class GridDhtTxPrepareFuture extends
GridCacheCompoundFuture<Ignite
try {
if (entry.initialValue(info.value(),
info.version(),
- cacheCtx.mvccEnabled() ?
((MvccVersionAware)info).mvccVersion() : null,
- cacheCtx.mvccEnabled() ?
((MvccUpdateVersionAware)info).newMvccVersion() : null,
- cacheCtx.mvccEnabled() ?
((MvccVersionAware)info).mvccTxState() : TxState.NA,
- cacheCtx.mvccEnabled() ?
((MvccUpdateVersionAware)info).newMvccTxState() : TxState.NA,
+ null,
+ null,
+ TxState.NA,
+ TxState.NA,
info.ttl(),
info.expireTime(),
true,
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 0105abc103b..a890cd792a8 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
@@ -113,7 +113,7 @@ public class GridPartitionedGetFuture<K, V> extends
CacheDistributedGetFutureAda
recovery
);
- assert (mvccSnapshot == null) == !cctx.mvccEnabled();
+ assert mvccSnapshot == null;
this.mvccSnapshot = mvccSnapshot;
this.txLbl = txLbl;
@@ -421,10 +421,7 @@ public class GridPartitionedGetFuture<K, V> extends
CacheDistributedGetFutureAda
List<ClusterNode> affNodes,
Map<K, V> locVals
) {
- // Local get cannot be used with MVCC as local node can contain some
visible version which is not latest.
- boolean fastLocGet = !cctx.mvccEnabled() &&
- (!forcePrimary || affNodes.get(0).isLocal()) &&
- cctx.reserveForFastLocalGet(part, topVer);
+ boolean fastLocGet = (!forcePrimary || affNodes.get(0).isLocal()) &&
cctx.reserveForFastLocalGet(part, topVer);
if (fastLocGet) {
try {
@@ -467,9 +464,7 @@ public class GridPartitionedGetFuture<K, V> extends
CacheDistributedGetFutureAda
if (readNoEntry) {
KeyCacheObject key0 =
(KeyCacheObject)cctx.cacheObjects().prepareForCache(key, cctx);
- CacheDataRow row = cctx.mvccEnabled() ?
- cctx.offheap().mvccRead(cctx, key0, mvccSnapshot()) :
- cctx.offheap().read(cctx, key0);
+ CacheDataRow row = cctx.offheap().read(cctx, key0);
if (row != null) {
long expireTime = row.expireTime();
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedSingleGetFuture.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedSingleGetFuture.java
index 1fb2636695f..3233a3a93f8 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedSingleGetFuture.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedSingleGetFuture.java
@@ -190,7 +190,7 @@ public class GridPartitionedSingleGetFuture extends
GridCacheFutureAdapter<Objec
@Nullable MvccSnapshot mvccSnapshot
) {
assert key != null;
- assert mvccSnapshot == null || cctx.mvccEnabled();
+ assert mvccSnapshot == null;
AffinityTopologyVersion lockedTopVer =
cctx.shared().lockedTopologyVersion(null);
@@ -427,10 +427,7 @@ public class GridPartitionedSingleGetFuture extends
GridCacheFutureAdapter<Objec
AffinityTopologyVersion topVer,
List<ClusterNode> affNodes
) {
- // Local get cannot be used with MVCC as local node can contain some
visible version which is not latest.
- boolean fastLocGet = !cctx.mvccEnabled() &&
- (!forcePrimary || affNodes.get(0).isLocal()) &&
- cctx.reserveForFastLocalGet(part, topVer);
+ boolean fastLocGet = (!forcePrimary || affNodes.get(0).isLocal()) &&
cctx.reserveForFastLocalGet(part, topVer);
if (fastLocGet) {
try {
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 cf301cdf1d8..3c995babf3f 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
@@ -63,7 +63,6 @@ import
org.apache.ignite.internal.processors.cache.distributed.near.GridNearUnlo
import
org.apache.ignite.internal.processors.cache.distributed.near.consistency.GridNearReadRepairCheckOnlyFuture;
import org.apache.ignite.internal.processors.cache.mvcc.MvccQueryTracker;
import org.apache.ignite.internal.processors.cache.mvcc.MvccSnapshot;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccUtils;
import org.apache.ignite.internal.processors.cache.persistence.CacheDataRow;
import org.apache.ignite.internal.processors.cache.transactions.IgniteTxKey;
import
org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalEx;
@@ -201,7 +200,7 @@ public class GridDhtColocatedCache<K, V> extends
GridDhtTransactionalCacheAdapte
final ReadRepairStrategy readRepairStrategy = opCtx != null ?
opCtx.readRepairStrategy() : null;
// Get operation bypass Tx in Mvcc mode.
- if (!ctx.mvccEnabled() && tx != null && !tx.implicit() && !skipTx) {
+ if (tx != null && !tx.implicit() && !skipTx) {
return asyncOp(tx, new AsyncOp<V>() {
@Override public IgniteInternalFuture<V> op(GridNearTxLocal
tx, AffinityTopologyVersion readyTopVer) {
IgniteInternalFuture<Map<Object, Object>> fut =
tx.getAllAsync(ctx,
@@ -238,23 +237,6 @@ public class GridDhtColocatedCache<K, V> extends
GridDhtTransactionalCacheAdapte
MvccSnapshot mvccSnapshot = null;
MvccQueryTracker mvccTracker = null;
- if (ctx.mvccEnabled()) {
- try {
- if (tx != null)
- mvccSnapshot = MvccUtils.requestSnapshot(tx);
- else {
- mvccTracker = MvccUtils.mvccTracker(ctx, null);
-
- mvccSnapshot = mvccTracker.snapshot();
- }
-
- assert mvccSnapshot != null;
- }
- catch (IgniteCheckedException ex) {
- return new GridFinishedFuture<>(ex);
- }
- }
-
AffinityTopologyVersion topVer;
if (tx != null)
@@ -335,7 +317,7 @@ public class GridDhtColocatedCache<K, V> extends
GridDhtTransactionalCacheAdapte
final CacheOperationContext opCtx = ctx.operationContextPerCall();
- if (!ctx.mvccEnabled() && tx != null && !tx.implicit() && !skipTx) {
+ if (tx != null && !tx.implicit() && !skipTx) {
return asyncOp(tx, new AsyncOp<Map<K, V>>(keys) {
/** {@inheritDoc} */
@Override public IgniteInternalFuture<Map<K, V>>
op(GridNearTxLocal tx,
@@ -357,23 +339,6 @@ public class GridDhtColocatedCache<K, V> extends
GridDhtTransactionalCacheAdapte
MvccSnapshot mvccSnapshot = null;
MvccQueryTracker mvccTracker = null;
- if (ctx.mvccEnabled()) {
- try {
- if (tx != null)
- mvccSnapshot = MvccUtils.requestSnapshot(tx);
- else {
- mvccTracker = MvccUtils.mvccTracker(ctx, null);
-
- mvccSnapshot = mvccTracker.snapshot();
- }
-
- assert mvccSnapshot != null;
- }
- catch (IgniteCheckedException ex) {
- return new GridFinishedFuture<>(ex);
- }
- }
-
AffinityTopologyVersion topVer;
if (tx != null)
@@ -510,7 +475,7 @@ public class GridDhtColocatedCache<K, V> extends
GridDhtTransactionalCacheAdapte
@Nullable String txLbl,
@Nullable MvccSnapshot mvccSnapshot
) {
- assert (mvccSnapshot == null) == !ctx.mvccEnabled();
+ assert mvccSnapshot == null;
if (keys == null || keys.isEmpty())
return new GridFinishedFuture<>(Collections.<K, V>emptyMap());
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysFuture.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysFuture.java
index 2af2e7fd5d9..9a42bb00296 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysFuture.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysFuture.java
@@ -42,8 +42,6 @@ import
org.apache.ignite.internal.processors.cache.KeyCacheObject;
import
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtFuture;
import
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
import
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccUpdateVersionAware;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccVersionAware;
import org.apache.ignite.internal.processors.cache.mvcc.txlog.TxState;
import org.apache.ignite.internal.util.F0;
import org.apache.ignite.internal.util.GridLeanSet;
@@ -235,8 +233,6 @@ public final class GridDhtForceKeysFuture<K, V> extends
GridCompoundFuture<Objec
boolean ret = false;
if (mappings != null) {
- assert !cctx.mvccEnabled(); // Should not happen when MVCC enabled.
-
ClusterNode loc = cctx.localNode();
int curTopVer = topCntr.get();
@@ -538,10 +534,10 @@ public final class GridDhtForceKeysFuture<K, V> extends
GridCompoundFuture<Objec
if (entry.initialValue(
info.value(),
info.version(),
- cctx.mvccEnabled() ?
((MvccVersionAware)info).mvccVersion() : null,
- cctx.mvccEnabled() ?
((MvccUpdateVersionAware)info).newMvccVersion() : null,
- cctx.mvccEnabled() ?
((MvccVersionAware)entry).mvccTxState() : TxState.NA,
- cctx.mvccEnabled() ?
((MvccUpdateVersionAware)entry).newMvccTxState() : TxState.NA,
+ null,
+ null,
+ TxState.NA,
+ TxState.NA,
info.ttl(),
info.expireTime(),
true,
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 0988ac2ccc5..2aa76f9bcbf 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
@@ -288,7 +288,7 @@ public class GridNearPessimisticTxPrepareFuture extends
GridNearTxPrepareFutureA
*/
@SuppressWarnings("unchecked")
private void preparePessimistic() {
- assert !tx.implicitSingle() || tx.txState().mvccEnabled(); // Non-mvcc
implicit-single tx goes fast commit way.
+ assert !tx.implicitSingle();
Map<UUID, GridDistributedTxMapping> mappings = new HashMap<>();
@@ -298,59 +298,45 @@ public class GridNearPessimisticTxPrepareFuture extends
GridNearTxPrepareFutureA
Map<UUID, Collection<UUID>> txNodes;
- if (tx.txState().mvccEnabled()) {
- Collection<GridDistributedTxMapping> mvccMappings =
tx.implicitSingle()
- ? Collections.singleton(tx.mappings().singleMapping()) :
tx.mappings().mappings();
+ GridDhtTxMapping txMapping = new GridDhtTxMapping();
- txNodes = new HashMap<>(mvccMappings.size());
+ for (IgniteTxEntry txEntry : tx.allEntries()) {
+ txEntry.clearEntryReadVersion();
- for (GridDistributedTxMapping m : mvccMappings) {
- mappings.put(m.primary().id(), m);
+ GridCacheContext cacheCtx = txEntry.context();
- txNodes.put(m.primary().id(), m.backups());
- }
- }
- else {
- GridDhtTxMapping txMapping = new GridDhtTxMapping();
-
- for (IgniteTxEntry txEntry : tx.allEntries()) {
- txEntry.clearEntryReadVersion();
-
- GridCacheContext cacheCtx = txEntry.context();
-
- if (cacheCtx.isNear())
- hasNearCache = true;
+ if (cacheCtx.isNear())
+ hasNearCache = true;
- List<ClusterNode> nodes;
+ List<ClusterNode> nodes;
- GridDhtPartitionTopology top = cacheCtx.topology();
- nodes =
top.nodes(cacheCtx.affinity().partition(txEntry.key()), topVer);
+ GridDhtPartitionTopology top = cacheCtx.topology();
+ nodes = top.nodes(cacheCtx.affinity().partition(txEntry.key()),
topVer);
- if (F.isEmpty(nodes)) {
- onDone(new ClusterTopologyServerNotFoundException("Failed
to map keys to nodes (partition " +
- "is not mapped to any node) [key=" + txEntry.key() +
- ", partition=" +
cacheCtx.affinity().partition(txEntry.key()) + ", topVer=" + topVer + ']'));
+ if (F.isEmpty(nodes)) {
+ onDone(new ClusterTopologyServerNotFoundException("Failed to
map keys to nodes (partition " +
+ "is not mapped to any node) [key=" + txEntry.key() +
+ ", partition=" +
cacheCtx.affinity().partition(txEntry.key()) + ", topVer=" + topVer + ']'));
- return;
- }
-
- ClusterNode primary = nodes.get(0);
+ return;
+ }
- GridDistributedTxMapping nodeMapping =
mappings.get(primary.id());
+ ClusterNode primary = nodes.get(0);
- if (nodeMapping == null)
- mappings.put(primary.id(), nodeMapping = new
GridDistributedTxMapping(primary));
+ GridDistributedTxMapping nodeMapping = mappings.get(primary.id());
- txEntry.nodeId(primary.id());
+ if (nodeMapping == null)
+ mappings.put(primary.id(), nodeMapping = new
GridDistributedTxMapping(primary));
- nodeMapping.add(txEntry);
+ txEntry.nodeId(primary.id());
- txMapping.addMapping(nodes);
- }
+ nodeMapping.add(txEntry);
- txNodes = txMapping.transactionNodes();
+ txMapping.addMapping(nodes);
}
+ txNodes = txMapping.transactionNodes();
+
tx.transactionNodes(txNodes);
if (!hasNearCache)
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 0d76760d1ed..8c3e954151b 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
@@ -603,10 +603,6 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter
implements GridTimeou
) {
assert key != null;
- if (cacheCtx.mvccEnabled())
- return mvccPutAllAsync0(cacheCtx, Collections.singletonMap(key,
val),
- entryProc == null ? null : Collections.singletonMap(key,
entryProc), invokeArgs, retval, filter);
-
try {
beforePut(cacheCtx, retval, false);
@@ -858,9 +854,6 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter
implements GridTimeou
@Nullable Map<KeyCacheObject, GridCacheDrInfo> drMap,
final boolean retval
) {
- if (cacheCtx.mvccEnabled())
- return mvccPutAllAsync0(cacheCtx, map, invokeMap, invokeArgs,
retval, null);
-
try {
beforePut(cacheCtx, retval, false);
}
@@ -1703,9 +1696,6 @@ public class GridNearTxLocal extends
GridDhtTxLocalAdapter implements GridTimeou
final boolean retval,
@Nullable final CacheEntryPredicate filter,
boolean singleRmv) {
- if (cacheCtx.mvccEnabled())
- return mvccRemoveAllAsync0(cacheCtx, keys, retval, filter);
-
try {
checkUpdatesAllowed(cacheCtx);
}
@@ -1929,87 +1919,6 @@ public class GridNearTxLocal extends
GridDhtTxLocalAdapter implements GridTimeou
}
}
- /**
- * Internal method for remove operations in Mvcc mode.
- *
- * @param cacheCtx Cache context.
- * @param keys Keys to remove.
- * @param retval Flag indicating whether a value should be returned.
- * @param filter Filter.
- * @return Future for asynchronous remove.
- */
- @SuppressWarnings("unchecked")
- private <K, V> IgniteInternalFuture<GridCacheReturn> mvccRemoveAllAsync0(
- final GridCacheContext cacheCtx,
- @Nullable final Collection<? extends K> keys,
- final boolean retval,
- @Nullable final CacheEntryPredicate filter
- ) {
- try {
- MvccUtils.requestSnapshot(this);
-
- beforeRemove(cacheCtx, retval);
- }
- catch (IgniteCheckedException e) {
- return new GridFinishedFuture(e);
- }
-
- if (F.isEmpty(keys)) {
- if (implicit()) {
- try {
- commit();
- }
- catch (IgniteCheckedException e) {
- return new GridFinishedFuture<>(e);
- }
- }
-
- return new GridFinishedFuture<>(new GridCacheReturn(localResult(),
true));
- }
-
- init();
-
- Set<KeyCacheObject> enlisted = new HashSet<>(keys.size());
-
- try {
- for (Object key : keys) {
- if (isRollbackOnly())
- return new GridFinishedFuture<>(timedOut() ?
timeoutException() : rollbackException());
-
- if (key == null) {
- rollback();
-
- throw new NullPointerException("Null key.");
- }
-
- KeyCacheObject cacheKey = cacheCtx.toCacheKeyObject(key);
-
- enlisted.add(cacheKey);
- }
-
- }
- catch (IgniteCheckedException e) {
- return new GridFinishedFuture(e);
- }
-
- return updateAsync(cacheCtx, new
UpdateSourceIterator<KeyCacheObject>() {
-
- private final Iterator<KeyCacheObject> it = enlisted.iterator();
-
- @Override public EnlistOperation operation() {
- return EnlistOperation.DELETE;
- }
-
- @Override public boolean hasNextX() {
- return it.hasNext();
- }
-
- @Override public KeyCacheObject nextX() {
- return it.next();
- }
- }, retval, filter, remainingTime());
- }
-
/**
* @param cacheCtx Cache context.
* @param cacheIds Involved cache ids.
@@ -2208,9 +2117,6 @@ public class GridNearTxLocal extends
GridDhtTxLocalAdapter implements GridTimeou
if (F.isEmpty(keys))
return new GridFinishedFuture<>(Collections.emptyMap());
- if (cacheCtx.mvccEnabled() && !isOperationAllowed(true))
- return txTypeMismatchFinishFuture();
-
init();
int keysCnt = keys.size();
@@ -3327,14 +3233,7 @@ public class GridNearTxLocal extends
GridDhtTxLocalAdapter implements GridTimeou
/** {@inheritDoc} */
@Override public boolean queryEnlisted() {
- if (!txState.mvccEnabled())
- return false;
- else if (qryEnlisted)
- return true;
- else if (mappings.single())
- return !mappings.empty() && mappings.singleMapping().queryUpdate();
- else
- return
mappings.mappings().stream().anyMatch(GridDistributedTxMapping::queryUpdate);
+ return false;
}
/**
@@ -4811,15 +4710,12 @@ public class GridNearTxLocal extends
GridDhtTxLocalAdapter implements GridTimeou
* @throws IgniteCheckedException If failed.
*/
private void beforePut(GridCacheContext cacheCtx, boolean retval, boolean
mvccOp) throws IgniteCheckedException {
- assert !mvccOp || cacheCtx.mvccEnabled();
+ assert !mvccOp;
checkUpdatesAllowed(cacheCtx);
cacheCtx.checkSecurity(SecurityPermission.CACHE_PUT);
- if (cacheCtx.mvccEnabled() && !isOperationAllowed(mvccOp))
- throw new IgniteCheckedException(TX_TYPE_MISMATCH_ERR_MSG);
-
if (retval)
needReturnValue(true);
@@ -4828,27 +4724,6 @@ public class GridNearTxLocal extends
GridDhtTxLocalAdapter implements GridTimeou
init();
}
- /**
- * @param cacheCtx Cache context.
- * @param retval Return value flag.
- * @throws IgniteCheckedException If failed.
- */
- private void beforeRemove(GridCacheContext cacheCtx, boolean retval)
throws IgniteCheckedException {
- assert cacheCtx.mvccEnabled();
-
- checkUpdatesAllowed(cacheCtx);
-
- cacheCtx.checkSecurity(SecurityPermission.CACHE_REMOVE);
-
- if (cacheCtx.mvccEnabled() && !isOperationAllowed(true))
- throw new IgniteCheckedException(TX_TYPE_MISMATCH_ERR_MSG);
-
- if (retval)
- needReturnValue(true);
-
- checkValid();
- }
-
/**
* @param cacheCtx Cache context.
* @throws IgniteCheckedException If updates are not allowed.
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java
index 35d38aafc45..24ef5b65fbb 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java
@@ -175,7 +175,7 @@ public abstract class GridNearTxPrepareFutureAdapter extends
* @param txNodes Primary to backups node map.
*/
final void checkOnePhase(Map<UUID, Collection<UUID>> txNodes) {
- if (tx.storeWriteThrough() || tx.txState().mvccEnabled()) // TODO
IGNITE-3479 (onePhase + mvcc)
+ if (tx.storeWriteThrough())
return;
if (txNodes.size() == 1) {
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java
index e23607f7065..b192559d215 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java
@@ -325,15 +325,7 @@ public class MvccProcessorImpl extends
GridProcessorAdapter implements MvccProce
/** {@inheritDoc} */
@Override public void onCacheStop(final GridCacheContext cctx) {
- if (cctx.mvccEnabled() && txLog != null) {
- assert mvccEnabled && mvccSupported;
-
- boolean hasMvccCaches =
ctx.cache().cacheDescriptors().values().stream()
- .anyMatch(c -> c.cacheConfiguration().getAtomicityMode() ==
TRANSACTIONAL_SNAPSHOT);
-
- if (!hasMvccCaches)
- stopTxLog();
- }
+ // No-op.
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccUtils.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccUtils.java
index 301cede38a8..29ca654c5d2 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccUtils.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccUtils.java
@@ -23,7 +23,6 @@ import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.TransactionConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import
org.apache.ignite.internal.cluster.ClusterTopologyServerNotFoundException;
-import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.CacheGroupContext;
import org.apache.ignite.internal.processors.cache.GridCacheContext;
import
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal;
@@ -42,8 +41,6 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
-import static org.apache.ignite.internal.pagemem.PageIdUtils.itemId;
-import static org.apache.ignite.internal.pagemem.PageIdUtils.pageId;
import static
org.apache.ignite.internal.processors.cache.persistence.tree.io.DataPageIO.MVCC_INFO_SIZE;
import static
org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
import static
org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ;
@@ -588,32 +585,9 @@ public class MvccUtils {
*/
private static <R> R invoke(GridCacheContext cctx, long link,
MvccClosure<R> clo, MvccSnapshot snapshot)
throws IgniteCheckedException {
- assert cctx.mvccEnabled();
+ assert false; // ex mvcc code, should never happen
- PageMemory pageMem = cctx.dataRegion().pageMemory();
- int grpId = cctx.groupId();
-
- int pageSize = pageMem.realPageSize(grpId);
-
- long pageId = pageId(link);
- int itemId = itemId(link);
- long page = pageMem.acquirePage(grpId, pageId);
-
- try {
- long pageAddr = pageMem.readLock(grpId, pageId, page);
-
- try {
- DataPageIO dataIo = DataPageIO.VERSIONS.forPage(pageAddr);
-
- return invoke(cctx, dataIo, pageAddr, itemId, pageSize, clo,
snapshot);
- }
- finally {
- pageMem.readUnlock(grpId, pageId, page);
- }
- }
- finally {
- pageMem.releasePage(grpId, pageId, page);
- }
+ return null;
}
/**
@@ -662,18 +636,6 @@ public class MvccUtils {
return invoke(cctx, dataIo, pageAddr, itemId, pageSize, isVisible,
snapshot);
}
- /**
- * Throw an {@link UnsupportedOperationException} if this cache is
transactional and MVCC is enabled with
- * appropriate message about corresponding operation type.
- * @param cctx Cache context.
- * @param opType operation type to mention in error message.
- */
- public static void verifyMvccOperationSupport(GridCacheContext<?, ?> cctx,
String opType) {
- if (cctx.mvccEnabled())
- throw new UnsupportedOperationException(opType + " operations are
not supported on transactional " +
- "caches when MVCC is enabled.");
- }
-
/**
* Checks transaction state.
* @param tx Transaction.
@@ -788,25 +750,6 @@ public class MvccUtils {
return ctx.coordinators().mvccEnabled();
}
- /**
- * Initialises MVCC filter and returns MVCC query tracker if needed.
- * @param cctx Cache context.
- * @param autoStartTx Start transaction flag.
- * @return MVCC query tracker.
- * @throws IgniteCheckedException If failed.
- */
- @NotNull public static MvccQueryTracker mvccTracker(GridCacheContext cctx,
boolean autoStartTx)
- throws IgniteCheckedException {
- assert cctx != null && cctx.mvccEnabled();
-
- GridNearTxLocal tx = tx(cctx.kernalContext());
-
- if (tx == null && autoStartTx)
- tx = txStart(cctx, 0);
-
- return mvccTracker(cctx, tx);
- }
-
/**
* Initialises MVCC filter and returns MVCC query tracker if needed.
* @param cctx Cache context.
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheDistributedQueryManager.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheDistributedQueryManager.java
index 95a842c79cf..a54135394ad 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheDistributedQueryManager.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheDistributedQueryManager.java
@@ -179,9 +179,6 @@ public class GridCacheDistributedQueryManager<K, V> extends
GridCacheQueryManage
* @param req Query request.
*/
@Override public void processQueryRequest(UUID sndId,
GridCacheQueryRequest req) {
- assert req.mvccSnapshot() != null || !cctx.mvccEnabled() ||
req.cancel() ||
- (req.type() == null && !req.fields()) : req; // Last assertion
means next page request.
-
if (req.cancel()) {
cancelIds.add(new CancelMessageId(req.id(), sndId));
@@ -548,7 +545,6 @@ public class GridCacheDistributedQueryManager<K, V> extends
GridCacheQueryManage
@Override public GridCloseableIterator scanQueryDistributed(final
GridCacheQueryAdapter qry,
Collection<ClusterNode> nodes) throws IgniteCheckedException {
assert qry.type() == GridCacheQueryType.SCAN : qry;
- assert qry.mvccSnapshot() != null || !cctx.mvccEnabled();
boolean performanceStatsEnabled =
cctx.kernalContext().performanceStatistics().enabled();
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryAdapter.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryAdapter.java
index 72c663327fb..2c22dec13e6 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryAdapter.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryAdapter.java
@@ -48,10 +48,8 @@ import
org.apache.ignite.internal.processors.cache.GridCacheContext;
import
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter;
import
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtUnreservedPartitionException;
import
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopology;
-import
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal;
import org.apache.ignite.internal.processors.cache.mvcc.MvccQueryTracker;
import org.apache.ignite.internal.processors.cache.mvcc.MvccSnapshot;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccUtils;
import org.apache.ignite.internal.processors.query.QueryUtils;
import org.apache.ignite.internal.util.GridCloseableIteratorAdapter;
import org.apache.ignite.internal.util.GridEmptyCloseableIterator;
@@ -70,6 +68,7 @@ import org.apache.ignite.lang.IgniteReducer;
import org.apache.ignite.plugin.security.SecurityPermission;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+
import static
org.apache.ignite.internal.processors.cache.query.GridCacheQueryType.INDEX;
import static
org.apache.ignite.internal.processors.cache.query.GridCacheQueryType.SCAN;
import static
org.apache.ignite.internal.processors.cache.query.GridCacheQueryType.SET;
@@ -627,20 +626,6 @@ public class GridCacheQueryAdapter<T> implements
CacheQuery<T> {
MvccQueryTracker mvccTracker = null;
- if (cctx.mvccEnabled() && mvccSnapshot == null) {
- GridNearTxLocal tx = cctx.tm().userTx();
-
- if (tx != null)
- mvccSnapshot = MvccUtils.requestSnapshot(tx);
- else {
- mvccTracker = MvccUtils.mvccTracker(cctx, null);
-
- mvccSnapshot = mvccTracker.snapshot();
- }
-
- assert mvccSnapshot != null;
- }
-
boolean loc = nodes.size() == 1 &&
F.first(nodes).id().equals(cctx.localNodeId());
GridCloseableIterator it;
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
index a139361a2a9..64d6b9a5aa4 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
@@ -806,8 +806,6 @@ public abstract class GridCacheQueryManager<K, V> extends
GridCacheManagerAdapte
private GridCloseableIterator scanIterator(final GridCacheQueryAdapter<?>
qry, IgniteClosure transformer,
boolean locNode)
throws IgniteCheckedException {
- assert !cctx.mvccEnabled() || qry.mvccSnapshot() != null;
-
final IgniteBiPredicate<K, V> keyValFilter = qry.scanFilter();
final InternalScanFilter<K, V> intFilter = keyValFilter != null ? new
InternalScanFilter<>(keyValFilter) : null;
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
index 2a506e1e895..af50b088f77 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java
@@ -685,18 +685,7 @@ public class CacheContinuousQueryHandler<K, V> implements
GridContinuousHandler
assert !skipEvt || evt == null;
assert skipEvt || part == -1 && cntr == -1; // part == -1 &&
cntr == -1 means skip counter.
- if (!cctx.mvccEnabled())
- return true;
-
- assert locInitUpdCntrs != null;
-
- cntr = skipEvt ? cntr : evt.getPartitionUpdateCounter();
- part = skipEvt ? part : evt.partitionId();
-
- T2<Long, Long> initCntr = locInitUpdCntrs.get(part);
-
- // Do not notify listener if entry was updated before the
query is started.
- return initCntr == null || cntr >= initCntr.get2();
+ return true;
}
};
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxImplicitSingleStateImpl.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxImplicitSingleStateImpl.java
index ba02c928ed2..113f582c24c 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxImplicitSingleStateImpl.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxImplicitSingleStateImpl.java
@@ -72,7 +72,7 @@ public class IgniteTxImplicitSingleStateImpl extends
IgniteTxLocalStateAdapter {
tx.activeCachesDeploymentEnabled(cacheCtx.deploymentEnabled());
- useMvccCaching = cacheCtx.mvccEnabled() && (cacheCtx.isDrEnabled() ||
cacheCtx.hasContinuousQueryListeners(tx));
+ useMvccCaching = false;
}
/** {@inheritDoc} */
@@ -316,11 +316,9 @@ public class IgniteTxImplicitSingleStateImpl extends
IgniteTxLocalStateAdapter {
return entry != null ? entry.get(0) : null;
}
- /** {@inheritDoc} */
- @Override public boolean mvccEnabled() {
- GridCacheContext ctx0 = cacheCtx;
-
- return ctx0 != null && ctx0.mvccEnabled();
+ /** MVCC Enabled */
+ public boolean mvccEnabled() {
+ return false;
}
/** {@inheritDoc} */
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 61245b29933..d34490e4461 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
@@ -404,9 +404,6 @@ public abstract class IgniteTxLocalAdapter extends
IgniteTxAdapter implements Ig
try {
cctx.tm().prepareTx(this, entries);
-
- if (txState().mvccEnabled())
- calculatePartitionUpdateCounters();
}
catch (IgniteCheckedException e) {
throw e;
@@ -859,7 +856,7 @@ public abstract class IgniteTxLocalAdapter extends
IgniteTxAdapter implements Ig
}
}
- if (!txState.mvccEnabled() && txCounters != null) {
+ if (txCounters != null) {
cctx.tm().txHandler().applyPartitionsUpdatesCounters(txCounters.updateCounters());
for (IgniteTxEntry entry : commitEntries) {
@@ -1616,20 +1613,6 @@ public abstract class IgniteTxLocalAdapter extends
IgniteTxAdapter implements Ig
return qryEnlisted;
}
- /**
- * Marks that there are entries, enlisted by query.
- */
- public void markQueryEnlisted() {
- assert mvccSnapshot != null && txState.mvccEnabled();
-
- if (!qryEnlisted) {
- qryEnlisted = true;
-
- if (!cctx.localNode().isClient())
-
cctx.coordinators().registerLocalTransaction(mvccSnapshot.coordinatorVersion(),
mvccSnapshot.counter());
- }
- }
-
/**
* Post-lock closure alias.
*
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index 29b61efb7eb..cd1483f93d9 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -60,7 +60,6 @@ import
org.apache.ignite.internal.managers.eventstorage.DiscoveryEventListener;
import org.apache.ignite.internal.managers.eventstorage.HighPriorityListener;
import
org.apache.ignite.internal.managers.systemview.walker.TransactionViewWalker;
import org.apache.ignite.internal.pagemem.wal.record.DataEntry;
-import org.apache.ignite.internal.pagemem.wal.record.MvccTxRecord;
import org.apache.ignite.internal.pagemem.wal.record.TxRecord;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
import org.apache.ignite.internal.processors.cache.CacheObjectsReleaseFuture;
@@ -2800,12 +2799,7 @@ public class IgniteTxManager extends
GridCacheSharedManagerAdapter {
Map<Short, Collection<Short>> nodes =
tx.consistentIdMapper.mapToCompactIds(tx.topVer, tx.txNodes, baselineTop);
- TxRecord record;
-
- if (tx.txState().mvccEnabled())
- record = new MvccTxRecord(tx.state(), tx.nearXidVersion(),
tx.writeVersion(), nodes, tx.mvccSnapshot());
- else
- record = new TxRecord(tx.state(), tx.nearXidVersion(),
tx.writeVersion(), nodes);
+ TxRecord record = new TxRecord(tx.state(), tx.nearXidVersion(),
tx.writeVersion(), nodes);
try {
return cctx.wal().log(record);
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteStateAdapter.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteStateAdapter.java
index 675bad50037..da8a8dcb824 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteStateAdapter.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteStateAdapter.java
@@ -94,12 +94,8 @@ public abstract class IgniteTxRemoteStateAdapter implements
IgniteTxRemoteState
mvccEnabled = mvccTx;
// Check if we can enlist new cache to transaction.
- if (!activeCacheIds.contains(cacheId)) {
+ if (!activeCacheIds.contains(cacheId))
activeCacheIds.add(cacheId);
-
- if (cctx.mvccEnabled() && (cctx.hasContinuousQueryListeners(tx) ||
cctx.isDrEnabled()))
- mvccCachingCacheIds.add(cacheId);
- }
}
/** {@inheritDoc} */
@@ -134,8 +130,8 @@ public abstract class IgniteTxRemoteStateAdapter implements
IgniteTxRemoteState
assert false;
}
- /** {@inheritDoc} */
- @Override public boolean mvccEnabled() {
+ /** MVCC Enabled */
+ public boolean mvccEnabled() {
return mvccEnabled;
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxState.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxState.java
index 6feab42292e..0a32e96656f 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxState.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxState.java
@@ -190,11 +190,6 @@ public interface IgniteTxState {
*/
public boolean empty();
- /**
- * @return {@code True} if MVCC mode is enabled for transaction.
- */
- public boolean mvccEnabled();
-
/**
* @param cacheId Cache id.
* @return {@code True} if it is need to store in the heap updates made by
the current TX for the given cache.
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxStateImpl.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxStateImpl.java
index ba27e787a25..68422a5aaf0 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxStateImpl.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxStateImpl.java
@@ -222,11 +222,7 @@ public class IgniteTxStateImpl extends
IgniteTxLocalStateAdapter {
this.recovery = recovery;
- if (mvccEnabled != null && mvccEnabled != cacheCtx.mvccEnabled())
- throw new IgniteCheckedException("Failed to enlist new cache to
existing transaction " +
- "(caches with different mvcc settings can't be enlisted in one
transaction).");
-
- mvccEnabled = cacheCtx.mvccEnabled();
+ mvccEnabled = false;
// Check if we can enlist new cache to transaction.
if (!activeCacheIds.contains(cacheId)) {
@@ -253,13 +249,9 @@ public class IgniteTxStateImpl extends
IgniteTxLocalStateAdapter {
", cacheSystem=" + cacheCtx.systemTx() +
", txSystem=" + tx.system() + ']');
}
- else {
+ else
activeCacheIds.add(cacheId);
- if (cacheCtx.mvccEnabled() &&
(cacheCtx.hasContinuousQueryListeners(tx) || cacheCtx.isDrEnabled()))
- mvccCachingCacheIds.add(cacheId);
- }
-
if (activeCacheIds.size() == 1)
tx.activeCachesDeploymentEnabled(cacheCtx.deploymentEnabled());
}
@@ -490,8 +482,8 @@ public class IgniteTxStateImpl extends
IgniteTxLocalStateAdapter {
return writeView != null && writeView.size() == 1 ?
F.firstValue(writeView) : null;
}
- /** {@inheritDoc} */
- @Override public boolean mvccEnabled() {
+ /** MVCC Enabled */
+ public boolean mvccEnabled() {
return Boolean.TRUE == mvccEnabled;
}
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
index 2d03c8ff932..df6d746c0de 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
@@ -294,12 +294,6 @@ public class GridCacheTestEntryEx extends
GridMetadataAwareAdapter implements Gr
return info;
}
- /** {@inheritDoc} */
- @Nullable @Override public List<GridCacheEntryInfo> allVersionsInfo()
- throws IgniteCheckedException {
- return null;
- }
-
/** {@inheritDoc} */
@Override public boolean valid(AffinityTopologyVersion topVer) {
return true;
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheFailedUpdateResponseTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheFailedUpdateResponseTest.java
index cc0f4ed0757..ae4bc957bd6 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheFailedUpdateResponseTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheFailedUpdateResponseTest.java
@@ -38,7 +38,6 @@ import org.apache.ignite.cache.CachePartialUpdateException;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.internal.processors.cache.IgniteCacheProxy;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -140,7 +139,7 @@ public class IgniteCacheFailedUpdateResponseTest extends
GridCommonAbstractTest
* @param cache Cache.
*/
private void testInvoke(final IgniteCache<Object, Object> cache) throws
Exception {
- Class<? extends Exception> exp = grid("client").transactions().tx() ==
null || ((IgniteCacheProxy)cache).context().mvccEnabled()
+ Class<? extends Exception> exp = grid("client").transactions().tx() ==
null
? EntryProcessorException.class
: NonSerializableException.class;
@@ -176,7 +175,7 @@ public class IgniteCacheFailedUpdateResponseTest extends
GridCommonAbstractTest
assertNotNull(epRes);
// In transactions EP will be invoked locally.
- Class<? extends Exception> exp = grid("client").transactions().tx() ==
null || ((IgniteCacheProxy)cache).context().mvccEnabled()
+ Class<? extends Exception> exp = grid("client").transactions().tx() ==
null
? EntryProcessorException.class
: NonSerializableException.class;
diff --git
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/CommandProcessor.java
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/CommandProcessor.java
index 49278ed2a89..e3894254330 100644
---
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/CommandProcessor.java
+++
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/CommandProcessor.java
@@ -404,10 +404,6 @@ public class CommandProcessor extends SqlCommandProcessor {
assert cctx != null;
- if (cctx.mvccEnabled())
- throw new IgniteSQLException("Cannot drop column(s)
with enabled MVCC. " +
- "Operation is unsupported at the moment.",
IgniteQueryErrorCode.UNSUPPORTED_OPERATION);
-
if
(QueryUtils.isSqlType(tbl.rowDescriptor().type().valueClass()))
throw new SchemaOperationException("Cannot drop
column(s) because table was created " +
"with " + PARAM_WRAP_VALUE + "=false option.");
diff --git
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Utils.java
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Utils.java
index bfc03a5f190..d6b59b8357d 100644
---
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Utils.java
+++
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Utils.java
@@ -52,7 +52,6 @@ import
org.apache.ignite.internal.processors.cache.GridCacheContext;
import org.apache.ignite.internal.processors.cache.GridCacheContextInfo;
import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
import org.apache.ignite.internal.processors.cache.QueryCursorImpl;
-import org.apache.ignite.internal.processors.cache.mvcc.MvccUtils;
import org.apache.ignite.internal.processors.cache.query.IgniteQueryErrorCode;
import org.apache.ignite.internal.processors.odbc.jdbc.JdbcParameterMeta;
import org.apache.ignite.internal.processors.query.GridQueryFieldMetadata;
@@ -815,44 +814,6 @@ public class H2Utils {
return caches0.isEmpty() ? Collections.emptyList() : new
ArrayList<>(caches0);
}
- /**
- * Collect MVCC enabled flag.
- *
- * @param idx Indexing.
- * @param cacheIds Cache IDs.
- * @return {@code True} if indexing is enabled.
- */
- public static boolean collectMvccEnabled(IgniteH2Indexing idx,
List<Integer> cacheIds) {
- if (cacheIds.isEmpty())
- return false;
-
- GridCacheSharedContext sharedCtx =
idx.kernalContext().cache().context();
-
- GridCacheContext cctx0 = null;
-
- boolean mvccEnabled = false;
-
- for (int i = 0; i < cacheIds.size(); i++) {
- Integer cacheId = cacheIds.get(i);
-
- GridCacheContext cctx = sharedCtx.cacheContext(cacheId);
-
- if (cctx == null) {
- throw new IgniteSQLException("Failed to find cache [cacheId="
+ cacheId + ']',
- IgniteQueryErrorCode.TABLE_NOT_FOUND);
- }
-
- if (i == 0) {
- mvccEnabled = cctx.mvccEnabled();
- cctx0 = cctx;
- }
- else if (cctx.mvccEnabled() != mvccEnabled)
- MvccUtils.throwAtomicityModesMismatchException(cctx0.config(),
cctx.config());
- }
-
- return mvccEnabled;
- }
-
/**
* Check if query is valid.
*
diff --git
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index 37559cc4758..681f019b843 100644
---
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@ -61,7 +61,6 @@ import
org.apache.ignite.internal.processors.cache.CacheOperationContext;
import org.apache.ignite.internal.processors.cache.DynamicCacheDescriptor;
import org.apache.ignite.internal.processors.cache.GridCacheContext;
import org.apache.ignite.internal.processors.cache.GridCacheContextInfo;
-import org.apache.ignite.internal.processors.cache.KeyCacheObject;
import org.apache.ignite.internal.processors.cache.QueryCursorImpl;
import
org.apache.ignite.internal.processors.cache.distributed.dht.IgniteClusterReadOnlyException;
import
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture;
@@ -159,9 +158,7 @@ import org.jetbrains.annotations.Nullable;
import static java.lang.Math.max;
import static java.lang.Math.min;
import static java.util.Collections.singletonList;
-import static
org.apache.ignite.IgniteSystemProperties.IGNITE_MVCC_TX_SIZE_CACHING_THRESHOLD;
import static org.apache.ignite.events.EventType.EVT_SQL_QUERY_EXECUTION;
-import static
org.apache.ignite.internal.processors.cache.mvcc.MvccCachingManager.TX_SIZE_THRESHOLD;
import static
org.apache.ignite.internal.processors.cache.mvcc.MvccUtils.checkActive;
import static
org.apache.ignite.internal.processors.cache.mvcc.MvccUtils.mvccEnabled;
import static
org.apache.ignite.internal.processors.cache.mvcc.MvccUtils.requestSnapshot;
@@ -1413,57 +1410,9 @@ public class IgniteH2Indexing implements
GridQueryIndexing {
* @return Query results cursor.
*/
private Iterable<List<?>> lockSelectedRows(Iterable<List<?>> cur,
GridCacheContext cctx, int pageSize, long timeout) {
- assert cctx != null && cctx.mvccEnabled();
+ assert false; // ex mvcc code, should never happen
- GridNearTxLocal tx = tx(ctx);
-
- if (tx == null)
- throw new IgniteSQLException("Failed to perform SELECT FOR UPDATE
operation: transaction has already finished.");
-
- Collection<List<?>> rowsCache = new ArrayList<>();
-
- UpdateSourceIterator srcIt = new
UpdateSourceIterator<KeyCacheObject>() {
- private Iterator<List<?>> it = cur.iterator();
-
- @Override public EnlistOperation operation() {
- return EnlistOperation.LOCK;
- }
-
- @Override public boolean hasNextX() throws IgniteCheckedException {
- return it.hasNext();
- }
-
- @Override public KeyCacheObject nextX() throws
IgniteCheckedException {
- List<?> res = it.next();
-
- // nextX() can be called from the different threads.
- synchronized (rowsCache) {
- rowsCache.add(res.subList(0, res.size() - 1));
-
- if (rowsCache.size() > TX_SIZE_THRESHOLD) {
- throw new IgniteCheckedException("Too many rows are
locked by SELECT FOR UPDATE statement. " +
- "Consider locking fewer keys or increase the limit
by setting a " +
- IGNITE_MVCC_TX_SIZE_CACHING_THRESHOLD + " system
property. Current value is " +
- TX_SIZE_THRESHOLD + " rows.");
- }
- }
-
- // The last column is expected to be a _key.
- return cctx.toCacheKeyObject(res.get(res.size() - 1));
- }
- };
-
- IgniteInternalFuture<Long> fut = tx.updateAsync(cctx, srcIt, pageSize,
- timeout, true);
-
- try {
- fut.get();
- }
- catch (IgniteCheckedException e) {
- throw U.convertException(e);
- }
-
- return rowsCache;
+ return null;
}
/**
@@ -2293,7 +2242,7 @@ public class IgniteH2Indexing implements
GridQueryIndexing {
GridCacheContext<?, ?> cctx = plan.cacheContext();
// For MVCC case, let's enlist batch elements one by one.
- if (plan.hasRows() && plan.mode() == UpdateMode.INSERT &&
!cctx.mvccEnabled()) {
+ if (plan.hasRows() && plan.mode() == UpdateMode.INSERT) {
CacheOperationContext opCtx =
DmlUtils.setKeepBinaryContext(cctx);
try {
@@ -2421,35 +2370,21 @@ public class IgniteH2Indexing implements
GridQueryIndexing {
GridCacheContext<?, ?> cctx = dml.plan().cacheContext();
- boolean transactional = cctx != null && cctx.mvccEnabled();
-
- int maxRetryCnt = transactional ? 1 : DFLT_UPDATE_RERUN_ATTEMPTS;
-
- for (int i = 0; i < maxRetryCnt; i++) {
+ for (int i = 0; i < DFLT_UPDATE_RERUN_ATTEMPTS; i++) {
CacheOperationContext opCtx = cctx != null ?
DmlUtils.setKeepBinaryContext(cctx) : null;
UpdateResult r;
try {
- if (transactional)
- r = executeUpdateTransactional(
- qryId,
- qryDesc,
- qryParams,
- dml,
- loc,
- cancel
- );
- else
- r = executeUpdateNonTransactional(
- qryId,
- qryDesc,
- qryParams,
- dml,
- loc,
- filters,
- cancel
- );
+ r = executeUpdateNonTransactional(
+ qryId,
+ qryDesc,
+ qryParams,
+ dml,
+ loc,
+ filters,
+ cancel
+ );
}
finally {
if (opCtx != null)
diff --git
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java
index 74025aded0e..63ac318fd84 100644
---
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java
+++
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2PkHashIndex.java
@@ -109,8 +109,6 @@ public class H2PkHashIndex extends GridH2IndexBase {
seg = qctx.segment();
}
- assert !cctx.mvccEnabled() || mvccSnapshot != null;
-
KeyCacheObject lowerObj = lower != null ?
cctx.toCacheKeyObject(lower.getValue(0).getObject()) : null;
KeyCacheObject upperObj = upper != null ?
cctx.toCacheKeyObject(upper.getValue(0).getObject()) : null;
diff --git
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
index f49acd2c96c..832fb3e01fd 100644
---
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
+++
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
@@ -224,8 +224,6 @@ public class H2TreeIndex extends H2TreeIndexBase {
/** */
private IndexQueryContext idxQryContext(QueryContext qctx) {
- assert qctx != null || !cctx.mvccEnabled();
-
if (qctx == null)
return null;
diff --git
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java
index 7c84d3bce04..99765a5395f 100644
---
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java
+++
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQueryParser.java
@@ -1840,9 +1840,6 @@ public class GridSqlQueryParser {
if (cctx == null)
return false;
- if (cctx.mvccEnabled())
- return false;
-
if (cctx.isPartitioned())
return false;
diff --git
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
index 9dec2c57491..bfa265d4474 100644
---
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
+++
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/sql/GridSqlQuerySplitter.java
@@ -51,6 +51,7 @@ import org.apache.ignite.internal.util.typedef.internal.U;
import org.h2.command.Prepared;
import org.h2.command.dml.Query;
import org.h2.table.Column;
+
import static
org.apache.ignite.internal.processors.query.h2.opt.join.CollocationModel.isCollocated;
import static
org.apache.ignite.internal.processors.query.h2.sql.GridSqlConst.TRUE;
import static
org.apache.ignite.internal.processors.query.h2.sql.GridSqlFunctionType.AVG;
@@ -317,7 +318,6 @@ public class GridSqlQuerySplitter {
}
List<Integer> cacheIds = H2Utils.collectCacheIds(idx, null,
splitter.tbls);
- boolean mvccEnabled = H2Utils.collectMvccEnabled(idx, cacheIds);
boolean replicatedOnly =
splitter.mapSqlQrys.stream().noneMatch(GridCacheSqlQuery::isPartitioned);
boolean treatReplicatedAsPartitioned =
splitter.mapSqlQrys.stream().anyMatch(GridCacheSqlQuery::treatReplicatedAsPartitioned);
@@ -336,7 +336,7 @@ public class GridSqlQuerySplitter {
replicatedOnly,
splitter.extractor.mergeMapQueries(splitter.mapSqlQrys),
cacheIds,
- mvccEnabled,
+ false,
locSplit,
treatReplicatedAsPartitioned
);
diff --git
a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedTest.cs
b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedTest.cs
index c9100b223aa..fc777917de8 100644
---
a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedTest.cs
+++
b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedTest.cs
@@ -44,39 +44,5 @@ namespace Apache.Ignite.Core.Tests.Cache
{
return 1;
}
-
- /// <summary>
- /// Test MVCC transaction.
- /// </summary>
- [Test]
- public void TestMvccTransaction()
- {
- IIgnite ignite = GetIgnite(0);
-
- ICache<int, int> cache = ignite.GetOrCreateCache<int, int>(new
CacheConfiguration
- {
- Name = "mvcc",
- AtomicityMode = CacheAtomicityMode.TransactionalSnapshot
- });
-
- ITransaction tx = ignite.GetTransactions().TxStart();
-
- cache.Put(1, 1);
- cache.Put(2, 2);
-
- tx.Commit();
-
- Assert.AreEqual(1, cache.Get(1));
- Assert.AreEqual(2, cache.Get(2));
-
- tx = ignite.GetTransactions().TxStart();
-
- Assert.AreEqual(1, cache.Get(1));
- Assert.AreEqual(2, cache.Get(2));
-
- tx.Commit();
-
- ignite.DestroyCache("mvcc");
- }
}
}