Merge branch 'ignite-3478' into ignite-3479 # Conflicts: # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsSharedManager.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/921df28c Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/921df28c Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/921df28c Branch: refs/heads/ignite-3479 Commit: 921df28ce3813f319f0a0bfedc067a061e743ca5 Parents: 1173da5 Author: sboikov <[email protected]> Authored: Fri Sep 22 17:27:14 2017 +0300 Committer: sboikov <[email protected]> Committed: Fri Sep 22 17:27:14 2017 +0300 ---------------------------------------------------------------------- .../mvcc/CacheCoordinatorsSharedManager.java | 31 +++++++++++++------- .../mvcc/MvccCoordinatorVersionResponse.java | 4 +++ .../cache/mvcc/CacheMvccTransactionsTest.java | 6 ++-- 3 files changed, 29 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/921df28c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsSharedManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsSharedManager.java index 8a85be8..6850bce 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsSharedManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsSharedManager.java @@ -40,7 +40,6 @@ import org.apache.ignite.internal.managers.discovery.DiscoCache; import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.cache.GridCacheSharedManagerAdapter; -import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter; import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx; import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.GridAtomicLong; @@ -547,20 +546,32 @@ public class CacheCoordinatorsSharedManager<K, V> extends GridCacheSharedManager private MvccCoordinatorVersionResponse assignQueryCounter(UUID qryNodeId, long futId) { assert crdVer != 0; - Long mvccCntr = committedCntr.get(); - MvccCoordinatorVersionResponse res = new MvccCoordinatorVersionResponse(); - Long trackCntr = mvccCntr; + Long mvccCntr; - for (Long txVer : activeTxs.keySet()) { - if (txVer < trackCntr) - trackCntr = txVer; + for(;;) { + mvccCntr = committedCntr.get(); - res.addTx(txVer); - } + Long trackCntr = mvccCntr; + + for (Long txVer : activeTxs.keySet()) { + if (txVer < trackCntr) + trackCntr = txVer; + + res.addTx(txVer); + } - registerActiveQuery(trackCntr); + registerActiveQuery(trackCntr); + + if (committedCntr.get() == mvccCntr) + break; + else { + res.resetTransactionsCount(); + + onQueryDone(trackCntr); + } + } TestDebugLog.addEntryMessage(mvccCntr, res.activeTransactions(), "qry cntr"); http://git-wip-us.apache.org/repos/asf/ignite/blob/921df28c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccCoordinatorVersionResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccCoordinatorVersionResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccCoordinatorVersionResponse.java index 1fc24f1..3ca1ec0 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccCoordinatorVersionResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccCoordinatorVersionResponse.java @@ -78,6 +78,10 @@ public class MvccCoordinatorVersionResponse implements MvccCoordinatorMessage, M txs[txsCnt++] = txId; } + void resetTransactionsCount() { + txsCnt = 0; + } + /** {@inheritDoc} */ @Override public int size() { return txsCnt; http://git-wip-us.apache.org/repos/asf/ignite/blob/921df28c/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccTransactionsTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccTransactionsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccTransactionsTest.java index cc5e075..5d4b1aa 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccTransactionsTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccTransactionsTest.java @@ -1318,7 +1318,7 @@ public class CacheMvccTransactionsTest extends GridCommonAbstractTest { TestDebugLog.printMessagesForThread(msgs, t, "test_debug_thread.txt"); - System.exit(1); + System.exit(88); } assertEquals(ACCOUNTS, accounts.size()); @@ -1685,9 +1685,11 @@ public class CacheMvccTransactionsTest extends GridCommonAbstractTest { } /** + * TODO IGNITE-3478. + * * @throws Exception If failed. */ - public void testReadInProgressCoordinatorFails() throws Exception { + public void _testReadInProgressCoordinatorFails() throws Exception { testSpi = true; startGrids(4);
