Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Track skipped transactions
[controller.git]
/
opendaylight
/
md-sal
/
sal-distributed-datastore
/
src
/
main
/
java
/
org
/
opendaylight
/
controller
/
cluster
/
databroker
/
actors
/
dds
/
ClientTransaction.java
diff --git
a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransaction.java
b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransaction.java
index f5855c279a9e4e9f648b93a047c1d9cdc3c4a1cc..7cdc04aba17b471ea218e3e8060141b9a8a2451e 100644
(file)
--- a/
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransaction.java
+++ b/
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransaction.java
@@
-12,6
+12,7
@@
import static com.google.common.base.Preconditions.checkState;
import com.google.common.annotations.Beta;
import com.google.common.util.concurrent.FluentFuture;
import java.util.Collection;
import com.google.common.annotations.Beta;
import com.google.common.util.concurrent.FluentFuture;
import java.util.Collection;
+import java.util.Map;
import java.util.Optional;
import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort;
import java.util.Optional;
import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort;
@@
-79,24
+80,30
@@
public class ClientTransaction extends AbstractClientHandle<AbstractProxyTransac
}
public DOMStoreThreePhaseCommitCohort ready() {
}
public DOMStoreThreePhaseCommitCohort ready() {
- final
Collection<AbstractProxyTransaction> toReady
= ensureClosed();
- checkState(
toReady
!= null, "Attempted to submit a closed transaction %s", this);
+ final
Map<Long, AbstractProxyTransaction> participants
= ensureClosed();
+ checkState(
participants
!= null, "Attempted to submit a closed transaction %s", this);
+ final Collection<AbstractProxyTransaction> toReady = participants.values();
toReady.forEach(AbstractProxyTransaction::seal);
toReady.forEach(AbstractProxyTransaction::seal);
+
+ final TransactionIdentifier txId = getIdentifier();
+ final AbstractClientHistory parent = parent();
+ parent.onTransactionShardsBound(txId, participants.keySet());
+
final AbstractTransactionCommitCohort cohort;
switch (toReady.size()) {
case 0:
final AbstractTransactionCommitCohort cohort;
switch (toReady.size()) {
case 0:
- cohort = new EmptyTransactionCommitCohort(parent
(), getIdentifier()
);
+ cohort = new EmptyTransactionCommitCohort(parent
, txId
);
break;
case 1:
break;
case 1:
- cohort = new DirectTransactionCommitCohort(parent
(), getIdentifier()
, toReady.iterator().next());
+ cohort = new DirectTransactionCommitCohort(parent
, txId
, toReady.iterator().next());
break;
default:
break;
default:
- cohort = new ClientTransactionCommitCohort(parent
(), getIdentifier()
, toReady);
+ cohort = new ClientTransactionCommitCohort(parent
, txId
, toReady);
break;
}
break;
}
- return parent
()
.onTransactionReady(this, cohort);
+ return parent.onTransactionReady(this, cohort);
}
@Override
}
@Override