@@ -48,7 +48,7 @@ public static Message createStateTransitionCancellationMessage(String srcInstanc
4848 toState );
4949
5050 Message message =
51- createStateTransitionMessage (Message .MessageType .STATE_TRANSITION_CANCELLATION ,
51+ createBasicStateTransitionMessage (Message .MessageType .STATE_TRANSITION_CANCELLATION ,
5252 srcInstanceName , srcSessionId , resource , partitionName , instanceName , currentState ,
5353 nextState , sessionId , stateModelDefName );
5454
@@ -60,28 +60,6 @@ public static Message createStateTransitionCancellationMessage(String srcInstanc
6060 return null ;
6161 }
6262
63- public static Message createStateTransitionMessage (String srcInstanceName , String srcSessionId ,
64- Resource resource , String partitionName , String instanceName , String currentState ,
65- String nextState , String tgtSessionId , String stateModelDefName ) {
66- Message message =
67- createStateTransitionMessage (Message .MessageType .STATE_TRANSITION , srcInstanceName ,
68- srcSessionId , resource , partitionName , instanceName , currentState , nextState , tgtSessionId ,
69- stateModelDefName );
70-
71- // Set the retry count for state transition messages.
72- // TODO: make the retry count configurable in ClusterConfig or IdealState
73- message .setRetryCount (DEFAULT_STATE_TRANSITION_MESSAGE_RETRY_COUNT );
74-
75- if (resource .getResourceGroupName () != null ) {
76- message .setResourceGroupName (resource .getResourceGroupName ());
77- }
78- if (resource .getResourceTag () != null ) {
79- message .setResourceTag (resource .getResourceTag ());
80- }
81-
82- return message ;
83- }
84-
8563 /**
8664 * Creates a message to change participant status
8765 * {@link org.apache.helix.model.LiveInstance.LiveInstanceStatus}
@@ -121,7 +99,7 @@ private static Message createBasicMessage(Message.MessageType messageType, Strin
12199 }
122100
123101 /* Creates state transition or state transition cancellation message */
124- private static Message createStateTransitionMessage (Message .MessageType messageType ,
102+ private static Message createBasicStateTransitionMessage (Message .MessageType messageType ,
125103 String srcInstanceName , String srcSessionId , Resource resource , String partitionName ,
126104 String instanceName , String currentState , String nextState , String tgtSessionId ,
127105 String stateModelDefName ) {
@@ -138,30 +116,62 @@ private static Message createStateTransitionMessage(Message.MessageType messageT
138116 }
139117
140118 /**
141- * Create a state transition message with currentReplicaNumber for prioritization
142- * @param msgSender message sender
143- * @param sessionId session id
119+ * Create a state transition message with replica prioritization metadata
120+ * @param srcInstanceName source instance name
121+ * @param srcSessionId source session id
144122 * @param resource resource
145123 * @param partitionName partition name
146- * @param instanceName instance name
147- * @param fromState from state
148- * @param toState to state
149- * @param sessionIdForInstance session id for instance
150- * @param stateModelDefName state model def name
151- * @param currentReplicaNumber the current replica number (for prioritization)
152- * @return message
124+ * @param instanceName target instance name
125+ * @param currentState current state
126+ * @param nextState next state
127+ * @param tgtSessionId target session id
128+ * @param stateModelDefName state model definition name
129+ * @param currentReplicaNumber replica priority number (-1 for no prioritization, >=0 for
130+ * prioritized)
131+ * @return state transition message
153132 */
154- public static Message createStateTransitionMessage (String msgSender , String sessionId ,
155- Resource resource , String partitionName , String instanceName , String fromState ,
156- String toState , String sessionIdForInstance , String stateModelDefName ,
157- int currentReplicaNumber ) {
133+ public static Message createStateTransitionMessage (String srcInstanceName , String srcSessionId ,
134+ Resource resource , String partitionName , String instanceName , String currentState ,
135+ String nextState , String tgtSessionId , String stateModelDefName , int currentReplicaNumber ) {
136+ Message message = createBasicStateTransitionMessage (Message .MessageType .STATE_TRANSITION ,
137+ srcInstanceName , srcSessionId , resource , partitionName , instanceName , currentState ,
138+ nextState , tgtSessionId , stateModelDefName );
139+
140+ // Set the retry count for state transition messages.
141+ // TODO: make the retry count configurable in ClusterConfig or IdealState
142+ message .setRetryCount (DEFAULT_STATE_TRANSITION_MESSAGE_RETRY_COUNT );
158143
159- Message message = createStateTransitionMessage (msgSender , sessionId , resource , partitionName ,
160- instanceName , fromState , toState , sessionIdForInstance , stateModelDefName );
144+ if (resource .getResourceGroupName () != null ) {
145+ message .setResourceGroupName (resource .getResourceGroupName ());
146+ }
147+ if (resource .getResourceTag () != null ) {
148+ message .setResourceTag (resource .getResourceTag ());
149+ }
161150
162- // Set the current replica number for prioritization
151+ // Set replica number for participant-side prioritization
163152 message .setCurrentReplicaNumber (currentReplicaNumber );
164153
165154 return message ;
166155 }
156+
157+ /**
158+ * Create a state transition message (backward compatibility)
159+ * @param srcInstanceName source instance name
160+ * @param srcSessionId source session id
161+ * @param resource resource
162+ * @param partitionName partition name
163+ * @param instanceName target instance name
164+ * @param currentState current state
165+ * @param nextState next state
166+ * @param tgtSessionId target session id
167+ * @param stateModelDefName state model definition name
168+ * @return state transition message
169+ */
170+ public static Message createStateTransitionMessage (String srcInstanceName , String srcSessionId ,
171+ Resource resource , String partitionName , String instanceName , String currentState ,
172+ String nextState , String tgtSessionId , String stateModelDefName ) {
173+ // currentReplicaNumber is set to -1 for ST messages needing no prioritization metadata (backward compatibility)
174+ return createStateTransitionMessage (srcInstanceName , srcSessionId , resource , partitionName ,
175+ instanceName , currentState , nextState , tgtSessionId , stateModelDefName , -1 );
176+ }
167177}
0 commit comments