Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 14f116d

Browse files
committed
switch status faster
1 parent 4866420 commit 14f116d

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

state.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,14 @@ MtmCheckState(void)
8484
{
8585
// int nVotingNodes = MtmGetNumberOfVotingNodes();
8686
bool isEnabledState;
87+
MtmNodeStatus old_status;
8788
int nEnabled = countZeroBits(Mtm->disabledNodeMask, Mtm->nAllNodes);
8889
int nConnected = countZeroBits(SELF_CONNECTIVITY_MASK, Mtm->nAllNodes);
8990
int nReceivers = Mtm->nAllNodes - countZeroBits(Mtm->pglogicalReceiverMask, Mtm->nAllNodes);
9091
int nSenders = Mtm->nAllNodes - countZeroBits(Mtm->pglogicalSenderMask, Mtm->nAllNodes);
9192

93+
old_status = Mtm->status;
94+
9295
MTM_LOG1("[STATE] Status = (disabled=%s, unaccessible=%s, clique=%s, receivers=%s, senders=%s, total=%i, major=%d, stopped=%s)",
9396
maskToString(Mtm->disabledNodeMask, Mtm->nAllNodes),
9497
maskToString(SELF_CONNECTIVITY_MASK, Mtm->nAllNodes),
@@ -122,6 +125,9 @@ MtmCheckState(void)
122125
if (isEnabledState)
123126
{
124127
MtmSetClusterStatus(MTM_RECOVERY);
128+
129+
if (old_status != Mtm->status)
130+
MtmCheckState();
125131
return;
126132
}
127133
break;
@@ -132,6 +138,9 @@ MtmCheckState(void)
132138
MTM_LOG1("[LOCK] set lock on MTM_RECOVERY switch");
133139
BIT_SET(Mtm->originLockNodeMask, MtmNodeId-1); // kk trick, XXXX: log that
134140
MtmSetClusterStatus(MTM_RECOVERED);
141+
142+
if (old_status != Mtm->status)
143+
MtmCheckState();
135144
return;
136145
}
137146
break;
@@ -154,6 +163,9 @@ MtmCheckState(void)
154163
MTM_LOG1("[LOCK] release lock on MTM_RECOVERED switch");
155164
BIT_CLEAR(Mtm->originLockNodeMask, MtmNodeId-1);
156165
MtmSetClusterStatus(MTM_ONLINE);
166+
167+
if (old_status != Mtm->status)
168+
MtmCheckState();
157169
return;
158170
}
159171
break;

0 commit comments

Comments
 (0)