BUG-7033: Remove payload replication short-circuits
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / ShardDataTree.java
index 78b49a60ae5cef444b28633fd9b8fe397d117914..282191216dc01ec002087d08b9fcb542510d226d 100644 (file)
@@ -69,7 +69,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeTip;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.TipProducingDataTree;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.TipProducingDataTreeTip;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType;
@@ -597,7 +596,6 @@ public class ShardDataTree extends ShardDataTreeTransactionParent {
     }
 
     private void processNextPending() {
-        processNextPendingFinishCommit();
         processNextPendingCommit();
         processNextPendingTransaction();
     }
@@ -628,11 +626,6 @@ public class ShardDataTree extends ShardDataTreeTransactionParent {
             entry -> startCommit(entry.cohort, entry.cohort.getCandidate()));
     }
 
-    private void processNextPendingFinishCommit() {
-        processNextPending(pendingFinishCommits, State.FINISH_COMMIT_PENDING,
-            entry -> payloadReplicationComplete(entry.cohort.getIdentifier()));
-    }
-
     private boolean peekNextPendingCommit() {
         final CommitEntry first = pendingCommits.peek();
         return first != null && first.cohort.getState() == State.COMMIT_PENDING;
@@ -739,15 +732,6 @@ public class ShardDataTree extends ShardDataTreeTransactionParent {
         LOG.debug("{}: Starting commit for transaction {}", logContext, current.getIdentifier());
 
         final TransactionIdentifier txId = cohort.getIdentifier();
-        if (shard.canSkipPayload() || candidate.getRootNode().getModificationType() == ModificationType.UNMODIFIED) {
-            LOG.debug("{}: No replication required, proceeding to finish commit", logContext);
-            pendingCommits.remove();
-            pendingFinishCommits.add(entry);
-            cohort.finishCommitPending();
-            payloadReplicationComplete(txId);
-            return;
-        }
-
         final Payload payload;
         try {
             payload = CommitTransactionPayload.create(txId, candidate);