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%2FShardCommitCoordinator.java;h=5d0ca38d6a2f1a1398161c7e73246a47f7b216f6;hp=165e272d8b09ca1631a94e7a1e7d14a4370bb595;hb=1e884647502a8d91f8a57bde8193c60b9bbcce0d;hpb=1462922f6fcf1d17a2b62cbfc6a9bc558fc6ae1c diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardCommitCoordinator.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardCommitCoordinator.java index 165e272d8b..5d0ca38d6a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardCommitCoordinator.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardCommitCoordinator.java @@ -9,7 +9,6 @@ package org.opendaylight.controller.cluster.datastore; import akka.actor.ActorRef; import akka.actor.Status; -import akka.event.LoggingAdapter; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import java.util.LinkedList; @@ -18,8 +17,10 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import org.opendaylight.controller.cluster.datastore.messages.CanCommitTransaction; import org.opendaylight.controller.cluster.datastore.messages.CanCommitTransactionReply; +import org.opendaylight.controller.cluster.datastore.modification.CompositeModification; import org.opendaylight.controller.cluster.datastore.modification.Modification; import org.opendaylight.controller.sal.core.spi.data.DOMStoreThreePhaseCommitCohort; +import org.slf4j.Logger; /** * Coordinates commits for a shard ensuring only one concurrent 3-phase commit. @@ -34,13 +35,13 @@ public class ShardCommitCoordinator { private final Queue queuedCohortEntries; - private final int queueCapacity; + private int queueCapacity; - private final LoggingAdapter log; + private final Logger log; private final String name; - public ShardCommitCoordinator(long cacheExpiryTimeoutInSec, int queueCapacity, LoggingAdapter log, + public ShardCommitCoordinator(long cacheExpiryTimeoutInSec, int queueCapacity, Logger log, String name) { cohortCache = CacheBuilder.newBuilder().expireAfterAccess( cacheExpiryTimeoutInSec, TimeUnit.SECONDS).build(); @@ -54,6 +55,10 @@ public class ShardCommitCoordinator { queuedCohortEntries = new LinkedList<>(); } + public void setQueueCapacity(int queueCapacity) { + this.queueCapacity = queueCapacity; + } + /** * This method caches a cohort entry for the given transactions ID in preparation for the * subsequent 3-phase commit. @@ -261,5 +266,12 @@ public class ShardCommitCoordinator { void setShard(ActorRef shard) { this.shard = shard; } + + boolean hasModifications(){ + if(modification instanceof CompositeModification){ + return ((CompositeModification) modification).getModifications().size() > 0; + } + return true; + } } }