IGNITE-264 - WIP
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/4bf51e77 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/4bf51e77 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/4bf51e77 Branch: refs/heads/ignite-264 Commit: 4bf51e7704d207bf91e994925ca509d2b6ba537d Parents: f286bb4 Author: Alexey Goncharuk <agoncha...@gridgain.com> Authored: Tue Feb 24 18:09:27 2015 -0800 Committer: Alexey Goncharuk <agoncha...@gridgain.com> Committed: Tue Feb 24 18:09:27 2015 -0800 ---------------------------------------------------------------------- .../distributed/dht/GridDhtTxPrepareFuture.java | 9 ++++-- .../cache/transactions/IgniteTxHandler.java | 4 +-- .../cache/transactions/IgniteTxManager.java | 34 +++----------------- 3 files changed, 12 insertions(+), 35 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4bf51e77/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java index f6ae0fb..2b1d2f0 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 @@ -789,9 +789,6 @@ public final class GridDhtTxPrepareFuture<K, V> extends GridCompoundIdentityFutu return; try { - // We are holding transaction-level locks for entries here, so we can get next write version. - tx.writeVersion(cctx.versions().next(tx.topologyVersion())); - onEntriesLocked(); { @@ -810,6 +807,12 @@ public final class GridDhtTxPrepareFuture<K, V> extends GridCompoundIdentityFutu } } + // We are holding transaction-level locks for entries here, so we can get next write version. + if (tx.onePhaseCommit()) + tx.writeVersion(tx.nearXidVersion()); + else + tx.writeVersion(cctx.versions().next(tx.topologyVersion())); + if (isDone()) return; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4bf51e77/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java index 3680f0d..90af0b2 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java @@ -782,9 +782,9 @@ public class IgniteTxHandler<K, V> { if (tx == null) { if (req.commit()) // Must be some long time duplicate, but we add it anyway. - ctx.tm().addCommittedTx(req.version(), null); + ctx.tm().addCommittedTx(req.writeVersion(), null); else - ctx.tm().addRolledbackTx(req.version()); + ctx.tm().addRolledbackTx(req.writeVersion()); if (log.isDebugEnabled()) log.debug("Received finish request for non-existing transaction (added to completed set) " + http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4bf51e77/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java ---------------------------------------------------------------------- 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 f9c4c54..e347cce 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 @@ -335,7 +335,7 @@ public class IgniteTxManager<K, V> extends GridCacheSharedManagerAdapter<K, V> { * {@code false} otherwise. */ public boolean isCompleted(IgniteInternalTx<K, V> tx) { - return completedVers.containsKey(tx.xidVersion()); + return completedVers.containsKey(tx.writeVersion()); } /** @@ -936,36 +936,10 @@ public class IgniteTxManager<K, V> extends GridCacheSharedManagerAdapter<K, V> { } /** - * Gets committed transactions starting from the given version (inclusive). // TODO: GG-4011: why inclusive? - * - * @param min Start (or minimum) version. - * @return Committed transactions starting from the given version (non-inclusive). - */ - public Collection<GridCacheVersion> committedVersions(GridCacheVersion min) { - ConcurrentNavigableMap<GridCacheVersion, Boolean> tail - = completedVers.tailMap(min, true); - - return F.isEmpty(tail) ? Collections.<GridCacheVersion>emptyList() : copyOf(tail, true); - } - - /** - * Gets rolledback transactions starting from the given version (inclusive). // TODO: GG-4011: why inclusive? - * - * @param min Start (or minimum) version. - * @return Committed transactions starting from the given version (non-inclusive). - */ - public Collection<GridCacheVersion> rolledbackVersions(GridCacheVersion min) { - ConcurrentNavigableMap<GridCacheVersion, Boolean> tail - = completedVers.tailMap(min, true); - - return F.isEmpty(tail) ? Collections.<GridCacheVersion>emptyList() : copyOf(tail, false); - } - - /** * @param tx Tx to remove. */ public void removeCommittedTx(IgniteInternalTx<K, V> tx) { - completedVers.remove(tx.xidVersion(), true); + completedVers.remove(tx.writeVersion(), true); } /** @@ -973,7 +947,7 @@ public class IgniteTxManager<K, V> extends GridCacheSharedManagerAdapter<K, V> { * @return If transaction was not already present in committed set. */ public boolean addCommittedTx(IgniteInternalTx<K, V> tx) { - return addCommittedTx(tx.xidVersion(), tx.nearXidVersion()); + return addCommittedTx(tx.writeVersion(), tx.nearXidVersion()); } /** @@ -1084,7 +1058,7 @@ public class IgniteTxManager<K, V> extends GridCacheSharedManagerAdapter<K, V> { * so we don't do it here. */ - Boolean committed = completedVers.get(tx.xidVersion()); + Boolean committed = completedVers.get(tx.writeVersion()); // 1. Make sure that committed version has been recorded. if (!((committed != null && committed) || tx.writeSet().isEmpty() || tx.isSystemInvalidate())) {