X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dom%2Fmdsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fbroker%2FSerializedDOMDataBroker.java;h=b3a3a55be23dea3bd51072096160103df7f976e4;hb=5f693add15c8702d72e0018ef2d30af076a5e537;hp=4200029a2e2895f6fcefb140954c6bd3e3330fd5;hpb=6a192f0eeedc302ae0b506d04f9d79b34406aef5;p=mdsal.git diff --git a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/SerializedDOMDataBroker.java b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/SerializedDOMDataBroker.java index 4200029a2e..b3a3a55be2 100644 --- a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/SerializedDOMDataBroker.java +++ b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/SerializedDOMDataBroker.java @@ -8,12 +8,6 @@ package org.opendaylight.mdsal.dom.broker; -import org.opendaylight.mdsal.dom.spi.store.DOMStore; -import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort; - -import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.mdsal.common.api.TransactionCommitFailedException; -import org.opendaylight.mdsal.dom.api.DOMDataWriteTransaction; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; @@ -22,6 +16,11 @@ import com.google.common.util.concurrent.ListeningExecutorService; import java.util.Collection; import java.util.Map; import java.util.concurrent.RejectedExecutionException; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.mdsal.common.api.TransactionCommitFailedException; +import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; +import org.opendaylight.mdsal.dom.spi.store.DOMStore; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort; import org.opendaylight.yangtools.util.DurationStatisticsTracker; import org.opendaylight.yangtools.util.concurrent.MappingCheckedFuture; import org.slf4j.Logger; @@ -31,11 +30,14 @@ import org.slf4j.LoggerFactory; * Implementation of blocking three phase commit coordinator, which which * supports coordination on multiple {@link DOMStoreThreePhaseCommitCohort}. * + *

* This implementation does not support cancellation of commit, * + *

* In order to advance to next phase of three phase commit all subtasks of * previous step must be finish. * + *

* This executor does not have an upper bound on subtask timeout. */ public class SerializedDOMDataBroker extends AbstractDOMDataBroker { @@ -44,13 +46,14 @@ public class SerializedDOMDataBroker extends AbstractDOMDataBroker { private final ListeningExecutorService executor; /** - * * Construct DOMDataCommitCoordinator which uses supplied executor to * process commit coordinations. * - * @param executor + * @param datastores the Map of backing DOMStore instances + * @param executor the ListeningExecutorService to use */ - public SerializedDOMDataBroker(final Map datastores, final ListeningExecutorService executor) { + public SerializedDOMDataBroker(final Map datastores, + final ListeningExecutorService executor) { super(datastores); this.executor = Preconditions.checkNotNull(executor, "executor must not be null."); } @@ -60,7 +63,8 @@ public class SerializedDOMDataBroker extends AbstractDOMDataBroker { } @Override - protected CheckedFuture submit(final DOMDataWriteTransaction transaction, + protected CheckedFuture submit( + final DOMDataTreeWriteTransaction transaction, final Collection cohorts) { Preconditions.checkArgument(transaction != null, "Transaction must not be null."); Preconditions.checkArgument(cohorts != null, "Cohorts must not be null."); @@ -70,9 +74,9 @@ public class SerializedDOMDataBroker extends AbstractDOMDataBroker { try { commitFuture = executor.submit(new CommitCoordinationTask(transaction, cohorts, commitStatsTracker)); - } catch(RejectedExecutionException e) { - LOG.error("The commit executor's queue is full - submit task was rejected. \n" + - executor, e); + } catch (RejectedExecutionException e) { + LOG.error("The commit executor's queue is full - submit task was rejected. \n" + + executor, e); return Futures.immediateFailedCheckedFuture( new TransactionCommitFailedException( "Could not submit the commit task - the commit queue capacity has been exceeded.", e));