From: Robert Varga Date: Tue, 7 May 2019 14:23:19 +0000 (+0200) Subject: Enqueue purge snapshot directly X-Git-Tag: release/sodium~92 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=79aecbd8caca003658711282bec308db74646a80 Enqueue purge snapshot directly When we are sending abort+purge, make sure we propagate it out as soon as possible. Change-Id: I2b63aa20867a8b99b779115f0bb448c0e8ac9a22 JIRA: CONTROLLER-1879 Signed-off-by: Robert Varga --- diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java index 897527764c..97b4a48f10 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java @@ -83,6 +83,7 @@ import org.opendaylight.controller.cluster.datastore.messages.UpdateSchemaContex import org.opendaylight.controller.cluster.datastore.persisted.AbortTransactionPayload; import org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot; import org.opendaylight.controller.cluster.datastore.persisted.DatastoreSnapshot.ShardSnapshot; +import org.opendaylight.controller.cluster.datastore.persisted.PurgeTransactionPayload; import org.opendaylight.controller.cluster.messaging.MessageAssembler; import org.opendaylight.controller.cluster.messaging.MessageSlicer; import org.opendaylight.controller.cluster.messaging.SliceOptions; @@ -363,9 +364,10 @@ public class Shard extends RaftActor { (DataTreeCohortActorRegistry.CohortRegistryCommand) message); } else if (message instanceof PersistAbortTransactionPayload) { final TransactionIdentifier txId = ((PersistAbortTransactionPayload) message).getTransactionId(); - persistPayload(txId, AbortTransactionPayload.create( - txId, datastoreContext.getInitialPayloadSerializedBufferCapacity()), true); - store.purgeTransaction(txId, null); + persistPayload(txId, AbortTransactionPayload.create(txId, + datastoreContext.getInitialPayloadSerializedBufferCapacity()), true); + persistPayload(txId, PurgeTransactionPayload.create(txId, + datastoreContext.getInitialPayloadSerializedBufferCapacity()), false); } else if (message instanceof MakeLeaderLocal) { onMakeLeaderLocal(); } else if (RESUME_NEXT_PENDING_TRANSACTION.equals(message)) {