De-prioritize ask-based messages 81/109681/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 8 Jan 2024 19:21:28 +0000 (20:21 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 8 Jan 2024 19:22:23 +0000 (20:22 +0100)
Reorganize message checking order so that ask-based messages are checked
just before we would be proclaiming an unknown message.

JIRA: CONTROLLER-2054
Change-Id: I2e8a1c5cc295547a994f6cf45bc73cbea607bc08
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java

index a9b401706b292f1f390d743b24c4492009d0afdd..f56eeb15decbf33ec71c9b8ed9f1c2f59e955733 100644 (file)
@@ -369,22 +369,6 @@ public class Shard extends RaftActor {
                 handleRequestAssemblerMessage(message);
             } else if (message instanceof ConnectClientRequest request) {
                 handleConnectClient(request);
-            } else if (CreateTransaction.isSerializedType(message)) {
-                handleCreateTransaction(message);
-            } else if (message instanceof BatchedModifications request) {
-                handleBatchedModifications(request);
-            } else if (message instanceof ForwardedReadyTransaction request) {
-                handleForwardedReadyTransaction(request);
-            } else if (message instanceof ReadyLocalTransaction request) {
-                handleReadyLocalTransaction(request);
-            } else if (CanCommitTransaction.isSerializedType(message)) {
-                handleCanCommitTransaction(CanCommitTransaction.fromSerializable(message));
-            } else if (CommitTransaction.isSerializedType(message)) {
-                handleCommitTransaction(CommitTransaction.fromSerializable(message));
-            } else if (AbortTransaction.isSerializedType(message)) {
-                handleAbortTransaction(AbortTransaction.fromSerializable(message));
-            } else if (CloseTransactionChain.isSerializedType(message)) {
-                closeTransactionChain(CloseTransactionChain.fromSerializable(message));
             } else if (message instanceof DataTreeChangedReply) {
                 // Ignore reply
             } else if (message instanceof RegisterDataTreeChangeListener request) {
@@ -408,8 +392,6 @@ public class Shard extends RaftActor {
                 sender().tell(store.getDataTree(), self());
             } else if (message instanceof ServerRemoved) {
                 context().parent().forward(message, context());
-            } else if (ShardTransactionMessageRetrySupport.TIMER_MESSAGE_CLASS.isInstance(message)) {
-                messageRetrySupport.onTimerMessage(message);
             } else if (message instanceof DataTreeCohortActorRegistry.CohortRegistryCommand request) {
                 store.processCohortRegistryCommand(getSender(), request);
             } else if (message instanceof MakeLeaderLocal) {
@@ -419,7 +401,28 @@ public class Shard extends RaftActor {
             } else if (GetKnownClients.INSTANCE.equals(message)) {
                 handleGetKnownClients();
             } else if (!responseMessageSlicer.handleMessage(message)) {
-                super.handleNonRaftCommand(message);
+                // Ask-based protocol messages
+                if (CreateTransaction.isSerializedType(message)) {
+                    handleCreateTransaction(message);
+                } else if (message instanceof BatchedModifications request) {
+                    handleBatchedModifications(request);
+                } else if (message instanceof ForwardedReadyTransaction request) {
+                    handleForwardedReadyTransaction(request);
+                } else if (message instanceof ReadyLocalTransaction request) {
+                    handleReadyLocalTransaction(request);
+                } else if (CanCommitTransaction.isSerializedType(message)) {
+                    handleCanCommitTransaction(CanCommitTransaction.fromSerializable(message));
+                } else if (CommitTransaction.isSerializedType(message)) {
+                    handleCommitTransaction(CommitTransaction.fromSerializable(message));
+                } else if (AbortTransaction.isSerializedType(message)) {
+                    handleAbortTransaction(AbortTransaction.fromSerializable(message));
+                } else if (CloseTransactionChain.isSerializedType(message)) {
+                    closeTransactionChain(CloseTransactionChain.fromSerializable(message));
+                } else if (ShardTransactionMessageRetrySupport.TIMER_MESSAGE_CLASS.isInstance(message)) {
+                    messageRetrySupport.onTimerMessage(message);
+                } else {
+                    super.handleNonRaftCommand(message);
+                }
             }
         }
     }