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%2FTransactionProxy.java;h=5aafcfc88f2eb72ccdef204d938731e8e08b5f63;hb=refs%2Fchanges%2F41%2F22141%2F1;hp=e7a00042e4146c5ddc03a013e6eeda3198a38ea3;hpb=33dab74052cbb54f9ec8323213e42b984953905f;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionProxy.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionProxy.java index e7a00042e4..5aafcfc88f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionProxy.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionProxy.java @@ -24,8 +24,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; -import java.util.concurrent.Semaphore; -import java.util.concurrent.TimeUnit; import org.opendaylight.controller.cluster.datastore.identifiers.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategyFactory; import org.opendaylight.controller.cluster.datastore.utils.ActorContext; @@ -55,10 +53,9 @@ public class TransactionProxy extends AbstractDOMStoreTransaction txContextAdapters = new HashMap<>(); private final AbstractTransactionContextFactory txContextFactory; + private final OperationLimiter limiter; private final TransactionType type; private TransactionState state = TransactionState.OPEN; - private volatile OperationCompleter operationCompleter; - private volatile Semaphore operationLimiter; @VisibleForTesting public TransactionProxy(final AbstractTransactionContextFactory txContextFactory, final TransactionType type) { @@ -67,6 +64,11 @@ public class TransactionProxy extends AbstractDOMStoreTransaction proxyFuture = SettableFuture.create(); TransactionContextWrapper contextAdapter = getContextAdapter(path); @@ -99,7 +101,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction createSingleCommitCohort(final String shardName, final TransactionContextWrapper contextAdapter) { - throttleOperation(); + limiter.acquire(); LOG.debug("Tx {} Readying transaction for shard {}", getIdentifier(), shardName); @@ -306,7 +308,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction createMultiCommitCohort( final Set> txContextAdapterEntries) { - throttleOperation(); + limiter.acquire(); final List> cohortFutures = new ArrayList<>(txContextAdapterEntries.size()); for (Entry e : txContextAdapterEntries) { LOG.debug("Tx {} Readying transaction for shard {}", getIdentifier(), e.getKey()); @@ -366,43 +368,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction