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%2FShardTransactionActorFactory.java;h=881f3c39d0c701e4c93b391797b6694f01f3254a;hb=99f80f27bee37bb23e345420bf14bb7bb4793c28;hp=8e9c762bf188e60c02485a74b694ebc0fd3880cc;hpb=43fb391bf873b252383a8d736b2651b04da8d40d;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransactionActorFactory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransactionActorFactory.java index 8e9c762bf1..881f3c39d0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransactionActorFactory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransactionActorFactory.java @@ -7,14 +7,15 @@ */ package org.opendaylight.controller.cluster.datastore; +import static java.util.Objects.requireNonNull; + +import akka.actor.AbstractActor.ActorContext; import akka.actor.ActorRef; -import akka.actor.UntypedActorContext; -import com.google.common.base.Preconditions; +import java.util.concurrent.atomic.AtomicLong; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; import org.opendaylight.controller.cluster.access.concepts.FrontendIdentifier; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; /** * A factory for creating ShardTransaction actors. @@ -22,25 +23,26 @@ import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats * @author Thomas Pantelis */ class ShardTransactionActorFactory { + private static final AtomicLong ACTOR_NAME_COUNTER = new AtomicLong(); private final ShardDataTree dataTree; private final DatastoreContext datastoreContext; private final String txnDispatcherPath; private final ShardStats shardMBean; - private final UntypedActorContext actorContext; + private final ActorContext actorContext; private final ActorRef shardActor; private final String shardName; ShardTransactionActorFactory(ShardDataTree dataTree, DatastoreContext datastoreContext, - String txnDispatcherPath, ActorRef shardActor, UntypedActorContext actorContext, ShardStats shardMBean, + String txnDispatcherPath, ActorRef shardActor, ActorContext actorContext, ShardStats shardMBean, String shardName) { - this.dataTree = Preconditions.checkNotNull(dataTree); - this.datastoreContext = Preconditions.checkNotNull(datastoreContext); - this.txnDispatcherPath = Preconditions.checkNotNull(txnDispatcherPath); - this.shardMBean = Preconditions.checkNotNull(shardMBean); - this.actorContext = Preconditions.checkNotNull(actorContext); - this.shardActor = Preconditions.checkNotNull(shardActor); - this.shardName = Preconditions.checkNotNull(shardName); + this.dataTree = requireNonNull(dataTree); + this.datastoreContext = requireNonNull(datastoreContext); + this.txnDispatcherPath = requireNonNull(txnDispatcherPath); + this.shardMBean = requireNonNull(shardMBean); + this.actorContext = requireNonNull(actorContext); + this.shardActor = requireNonNull(shardActor); + this.shardName = requireNonNull(shardName); } private String actorNameFor(final TransactionIdentifier txId) { @@ -57,7 +59,7 @@ class ShardTransactionActorFactory { sb.append(historyId.getHistoryId()).append('-'); } - return sb.append(txId.getTransactionId()).toString(); + return sb.append(txId.getTransactionId()).append('_').append(ACTOR_NAME_COUNTER.incrementAndGet()).toString(); } ActorRef newShardTransaction(TransactionType type, TransactionIdentifier transactionID) { @@ -65,15 +67,10 @@ class ShardTransactionActorFactory { switch (type) { case READ_ONLY: transaction = dataTree.newReadOnlyTransaction(transactionID); - shardMBean.incrementReadOnlyTransactionCount(); break; case READ_WRITE: - transaction = dataTree.newReadWriteTransaction(transactionID); - shardMBean.incrementReadWriteTransactionCount(); - break; case WRITE_ONLY: transaction = dataTree.newReadWriteTransaction(transactionID); - shardMBean.incrementWriteOnlyTransactionCount(); break; default: throw new IllegalArgumentException("Unsupported transaction type " + type);