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 9b4c5a962f9b62959ffc3464b475c27a7d198b59..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
@@
-7,11
+7,12
@@
*/
package org.opendaylight.controller.cluster.databroker.actors.dds;
*/
package org.opendaylight.controller.cluster.databroker.actors.dds;
+import static com.google.common.base.Preconditions.checkState;
+
import com.google.common.annotations.Beta;
import com.google.common.annotations.Beta;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Iterables;
import com.google.common.util.concurrent.FluentFuture;
import java.util.Collection;
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,25
+80,30
@@
public class ClientTransaction extends AbstractClientHandle<AbstractProxyTransac
}
public DOMStoreThreePhaseCommitCohort ready() {
}
public DOMStoreThreePhaseCommitCohort ready() {
- final
Collection<AbstractProxyTransaction> toReady
= ensureClosed();
-
Preconditions.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(),
- Iterables.getOnlyElement(toReady));
+ 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