Repository: ignite Updated Branches: refs/heads/ignite-5932 01b5183b7 -> b6b790aa2
ignite-5932 Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b6b790aa Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b6b790aa Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b6b790aa Branch: refs/heads/ignite-5932 Commit: b6b790aa2d5cfcde4c7ec21bee8f7c19e355d638 Parents: 01b5183 Author: sboikov <sboi...@gridgain.com> Authored: Mon Oct 16 12:16:10 2017 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Mon Oct 16 12:16:10 2017 +0300 ---------------------------------------------------------------------- .../distributed/dht/GridDhtTxFinishFuture.java | 19 ++++++++++--- ...ridNearOptimisticTxPrepareFutureAdapter.java | 4 ++- .../GridNearPessimisticTxPrepareFuture.java | 10 +++---- .../near/GridNearTxFinishFuture.java | 6 ++++ .../cache/mvcc/CacheCoordinatorsProcessor.java | 15 ++++++++-- .../cache/mvcc/MvccCoordinatorFuture.java | 30 ++++++++++++++++++++ 6 files changed, 72 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/b6b790aa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishFuture.java index cb2eaa5..e0117a4 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 @@ -35,6 +35,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheCompoundIdentityFutu import org.apache.ignite.internal.processors.cache.GridCacheFuture; import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxMapping; +import org.apache.ignite.internal.processors.cache.mvcc.MvccCoordinatorFuture; import org.apache.ignite.internal.processors.cache.mvcc.TxMvccInfo; import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx; import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry; @@ -610,13 +611,23 @@ public final class GridDhtTxFinishFuture<K, V> extends GridCacheCompoundIdentity /** {@inheritDoc} */ @Override public String toString() { - // TODO IGNITE-3478 (mvcc wait txs fut) Collection<String> futs = F.viewReadOnly(futures(), new C1<IgniteInternalFuture<?>, String>() { @SuppressWarnings("unchecked") @Override public String apply(IgniteInternalFuture<?> f) { - return "[node=" + ((MiniFuture)f).node().id() + - ", loc=" + ((MiniFuture)f).node().isLocal() + - ", done=" + f.isDone() + "]"; + if (f.getClass() == MiniFuture.class) { + return "[node=" + ((MiniFuture)f).node().id() + + ", loc=" + ((MiniFuture)f).node().isLocal() + + ", done=" + f.isDone() + "]"; + } + else if (f instanceof MvccCoordinatorFuture) { + MvccCoordinatorFuture crdFut = (MvccCoordinatorFuture)f; + + return "[mvccCrdNode=" + crdFut.coordinatorNodeId() + + ", loc=" + crdFut.coordinatorNodeId().equals(cctx.localNodeId()) + + ", done=" + f.isDone() + "]"; + } + else + return f.toString(); } }); http://git-wip-us.apache.org/repos/asf/ignite/blob/b6b790aa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFutureAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFutureAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFutureAdapter.java index a4b98da..4b1d846 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFutureAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFutureAdapter.java @@ -352,7 +352,9 @@ public abstract class GridNearOptimisticTxPrepareFutureAdapter extends GridNearT /** {@inheritDoc} */ @Override public String toString() { - return "MvccVersionFuture [crd=" + crd.nodeId() + ", lockCnt=" + lockCnt + ", isDone=" + isDone() + ']'; + return "MvccVersionFuture [crd=" + crd.nodeId() + + ", lockCnt=" + lockCnt + + ", done=" + isDone() + ']'; } } } http://git-wip-us.apache.org/repos/asf/ignite/blob/b6b790aa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java ---------------------------------------------------------------------- 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 f7c516d..ef2c359 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 @@ -38,6 +38,7 @@ import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartit import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxMapping; import org.apache.ignite.internal.processors.cache.mvcc.CacheCoordinatorsProcessor; import org.apache.ignite.internal.processors.cache.mvcc.MvccCoordinator; +import org.apache.ignite.internal.processors.cache.mvcc.MvccCoordinatorFuture; import org.apache.ignite.internal.processors.cache.mvcc.MvccCoordinatorVersion; import org.apache.ignite.internal.processors.cache.mvcc.MvccResponseListener; import org.apache.ignite.internal.processors.cache.mvcc.TxMvccInfo; @@ -498,12 +499,11 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA ", loc=" + ((MiniFuture)f).primary().isLocal() + ", done=" + f.isDone() + "]"; } - else if (f instanceof CacheCoordinatorsProcessor.MvccVersionFuture) { - CacheCoordinatorsProcessor.MvccVersionFuture crdFut = - (CacheCoordinatorsProcessor.MvccVersionFuture)f; + else if (f instanceof MvccCoordinatorFuture) { + MvccCoordinatorFuture crdFut = (MvccCoordinatorFuture)f; - return "[mvccCrdNode=" + crdFut.crd.nodeId() + - ", loc=" + crdFut.crd.nodeId().equals(cctx.localNodeId()) + + return "[mvccCrdNode=" + crdFut.coordinatorNodeId() + + ", loc=" + crdFut.coordinatorNodeId().equals(cctx.localNodeId()) + ", done=" + f.isDone() + "]"; } else http://git-wip-us.apache.org/repos/asf/ignite/blob/b6b790aa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java index a60fd1b..14536e4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java @@ -42,6 +42,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxMapping; import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxFinishRequest; import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxFinishResponse; +import org.apache.ignite.internal.processors.cache.mvcc.MvccCoordinatorFuture; import org.apache.ignite.internal.processors.cache.mvcc.MvccQueryTracker; import org.apache.ignite.internal.processors.cache.mvcc.TxMvccInfo; import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx; @@ -859,6 +860,11 @@ public final class GridNearTxFinishFuture<K, V> extends GridCacheCompoundIdentit return "CheckRemoteTxMiniFuture[nodes=" + fut.nodes() + ", done=" + f.isDone() + "]"; } + else if (f instanceof MvccCoordinatorFuture) { + MvccCoordinatorFuture fut = (MvccCoordinatorFuture)f; + + return "WaitPreviousTxsFut[mvccCrd=" + fut.coordinatorNodeId() + ", done=" + f.isDone() + "]"; + } else return "[loc=true, done=" + f.isDone() + "]"; } http://git-wip-us.apache.org/repos/asf/ignite/blob/b6b790aa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsProcessor.java index 27cbad9..fd3c2af 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsProcessor.java @@ -1161,7 +1161,7 @@ public class CacheCoordinatorsProcessor extends GridProcessorAdapter { /** * */ - public class MvccVersionFuture extends GridFutureAdapter<MvccCoordinatorVersion> { + private class MvccVersionFuture extends GridFutureAdapter<MvccCoordinatorVersion> implements MvccCoordinatorFuture { /** */ private final Long id; @@ -1188,6 +1188,11 @@ public class CacheCoordinatorsProcessor extends GridProcessorAdapter { startTime = System.nanoTime(); } + /** {@inheritDoc} */ + @Override public UUID coordinatorNodeId() { + return crd.nodeId(); + } + /** * @param res Response. */ @@ -1231,7 +1236,7 @@ public class CacheCoordinatorsProcessor extends GridProcessorAdapter { /** * */ - private class WaitAckFuture extends GridFutureAdapter<Void> { + private class WaitAckFuture extends GridFutureAdapter<Void> implements MvccCoordinatorFuture { /** */ private final long id; @@ -1247,6 +1252,7 @@ public class CacheCoordinatorsProcessor extends GridProcessorAdapter { /** * @param id Future ID. * @param crdId Coordinator node ID. + * @param ackTx {@code True} if ack tx commit, {@code false} if waits for previous txs. */ WaitAckFuture(long id, UUID crdId, boolean ackTx) { assert crdId != null; @@ -1259,6 +1265,11 @@ public class CacheCoordinatorsProcessor extends GridProcessorAdapter { startTime = System.nanoTime(); } + /** {@inheritDoc} */ + @Override public UUID coordinatorNodeId() { + return crdId; + } + /** * */ http://git-wip-us.apache.org/repos/asf/ignite/blob/b6b790aa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccCoordinatorFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccCoordinatorFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccCoordinatorFuture.java new file mode 100644 index 0000000..2d4e97b --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccCoordinatorFuture.java @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.mvcc; + +import java.util.UUID; + +/** + * + */ +public interface MvccCoordinatorFuture { + /** + * @return Coordinator node ID. + */ + public UUID coordinatorNodeId(); +}