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%2FAbstractFrontendHistory.java;h=e437b07c64bc7b7d9fdff19b5641bdce550dd49a;hp=01fc35c395656896ba59e668134429875cc13508;hb=19a6bcd20358c883478ee3b82e67cb147113f1c0;hpb=a66474c41883733413a6851d49fb5ade892764b3 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractFrontendHistory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractFrontendHistory.java index 01fc35c395..e437b07c64 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractFrontendHistory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractFrontendHistory.java @@ -11,8 +11,6 @@ import static java.util.Objects.requireNonNull; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Range; -import com.google.common.collect.RangeSet; import com.google.common.primitives.UnsignedLong; import java.util.HashMap; import java.util.Map; @@ -34,6 +32,7 @@ import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifie import org.opendaylight.controller.cluster.access.concepts.RequestEnvelope; import org.opendaylight.controller.cluster.access.concepts.RequestException; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.controller.cluster.datastore.utils.UnsignedLongSet; import org.opendaylight.yangtools.concepts.Identifiable; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.slf4j.Logger; @@ -49,7 +48,7 @@ abstract class AbstractFrontendHistory implements Identifiable transactions = new HashMap<>(); - private final RangeSet purgedTransactions; + private final UnsignedLongSet purgedTransactions; private final String persistenceId; private final ShardDataTree tree; @@ -60,7 +59,7 @@ abstract class AbstractFrontendHistory implements Identifiable closedTransactions; AbstractFrontendHistory(final String persistenceId, final ShardDataTree tree, - final Map closedTransactions, final RangeSet purgedTransactions) { + final Map closedTransactions, final UnsignedLongSet purgedTransactions) { this.persistenceId = requireNonNull(persistenceId); this.tree = requireNonNull(tree); this.closedTransactions = requireNonNull(closedTransactions); @@ -82,14 +81,15 @@ abstract class AbstractFrontendHistory implements Identifiable handleTransactionPurgeRequest(final TransactionRequest request, final RequestEnvelope envelope, final long now) { final TransactionIdentifier id = request.getTarget(); - final UnsignedLong ul = UnsignedLong.fromLongBits(id.getTransactionId()); - if (purgedTransactions.contains(ul)) { + final long txidBits = id.getTransactionId(); + if (purgedTransactions.contains(txidBits)) { // Retransmitted purge request: nothing to do LOG.debug("{}: transaction {} already purged", persistenceId, id); return new TransactionPurgeResponse(id, request.getSequence()); @@ -129,6 +129,7 @@ abstract class AbstractFrontendHistory implements Identifiable { closedTransactions.remove(ul); @@ -136,7 +137,7 @@ abstract class AbstractFrontendHistory implements Identifiable { - purgedTransactions.add(Range.closedOpen(ul, UnsignedLong.ONE.plus(ul))); + purgedTransactions.add(txidBits); transactions.remove(id); LOG.debug("{}: finished purging transaction {}", persistenceId(), id); envelope.sendSuccess(new TransactionPurgeResponse(id, request.getSequence()), readTime() - now);