X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FTransactionContextImpl.java;h=a9deeaaeba0806a1ad355dfeb40216d4a624219f;hb=2890d49fb524bf060f7e95c83bc025df0b6980ed;hp=c722918c5cfed8ad7062e63911ae60fa45aad7fa;hpb=ebaf3d71465066033d5882c61cdd2ec63b29d980;p=controller.git 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);