X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FTransactionContextImpl.java;h=a9deeaaeba0806a1ad355dfeb40216d4a624219f;hp=c722918c5cfed8ad7062e63911ae60fa45aad7fa;hb=a54ec60368110d22794602343c934902f6833c65;hpb=f9a9cd1ea40d2477ccb16b03c71a87595226595a diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionContextImpl.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionContextImpl.java index c722918c5c..a9deeaaeba 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionContextImpl.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionContextImpl.java @@ -89,13 +89,27 @@ public class TransactionContextImpl extends AbstractTransactionContext { actorContext.sendOperationAsync(getActor(), CloseTransaction.INSTANCE.toSerializable()); } + @Override + public boolean supportsDirectCommit() { + return true; + } + + @Override + public Future directCommit() { + LOG.debug("Tx {} directCommit called", getIdentifier()); + + // Send the remaining batched modifications, if any, with the ready flag set. + + return sendBatchedModifications(true, true); + } + @Override public Future readyTransaction() { LOG.debug("Tx {} readyTransaction called", getIdentifier()); // Send the remaining batched modifications, if any, with the ready flag set. - Future lastModificationsFuture = sendBatchedModifications(true); + Future lastModificationsFuture = sendBatchedModifications(true, false); return transformReadyReply(lastModificationsFuture); } @@ -145,10 +159,10 @@ public class TransactionContextImpl extends AbstractTransactionContext { } protected Future sendBatchedModifications() { - return sendBatchedModifications(false); + return sendBatchedModifications(false, false); } - protected Future sendBatchedModifications(boolean ready) { + protected Future sendBatchedModifications(boolean ready, boolean doCommitOnReady) { Future sent = null; if(ready || (batchedModifications != null && !batchedModifications.getModifications().isEmpty())) { if(batchedModifications == null) { @@ -161,6 +175,7 @@ public class TransactionContextImpl extends AbstractTransactionContext { } batchedModifications.setReady(ready); + batchedModifications.setDoCommitOnReady(doCommitOnReady); batchedModifications.setTotalMessagesSent(++totalBatchedModificationsSent); sent = executeOperationAsync(batchedModifications);