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

Commit fc42dcb

Browse files
knizhnikkelvich
authored andcommitted
Change cluster locking policy
1 parent 7a675d8 commit fc42dcb

9 files changed

+167
-90
lines changed

arbiter.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,11 @@ static void MtmSetSocketOptions(int sd)
320320

321321
static void MtmCheckResponse(MtmArbiterMessage* resp)
322322
{
323+
if (resp->lockReq) {
324+
BIT_SET(Mtm->globalLockerMask, resp->node-1);
325+
} else {
326+
BIT_CLEAR(Mtm->globalLockerMask, resp->node-1);
327+
}
323328
if (BIT_CHECK(resp->disabledNodeMask, MtmNodeId-1)
324329
&& !BIT_CHECK(Mtm->disabledNodeMask, resp->node-1)
325330
&& Mtm->status != MTM_RECOVERY
@@ -358,6 +363,7 @@ static void MtmSendHeartbeat()
358363
msg.disabledNodeMask = Mtm->disabledNodeMask;
359364
msg.connectivityMask = SELF_CONNECTIVITY_MASK;
360365
msg.oldestSnapshot = Mtm->nodes[MtmNodeId-1].oldestSnapshot;
366+
msg.lockReq = Mtm->nodeLockerMask != 0;
361367
msg.node = MtmNodeId;
362368
msg.csn = now;
363369
if (last_sent_heartbeat != 0 && last_sent_heartbeat + MSEC_TO_USEC(MtmHeartbeatSendTimeout)*2 < now) {
@@ -1073,6 +1079,7 @@ static void MtmReceiver(Datum arg)
10731079
StartTransactionCommand();
10741080
SetPreparedTransactionState(ts->gid, MULTIMASTER_PRECOMMITTED);
10751081
CommitTransactionCommand();
1082+
Assert(!MtmTransIsActive());
10761083
MtmLock(LW_EXCLUSIVE);
10771084
} else {
10781085
ts->status = TRANSACTION_STATUS_UNKNOWN;
@@ -1088,7 +1095,7 @@ static void MtmReceiver(Datum arg)
10881095
continue;
10891096
}
10901097
if (ts->status != TRANSACTION_STATUS_ABORTED) {
1091-
MTM_LOG1("Arbiter receive abort message for transaction %s (%llu)", ts->gid, (long64)ts->xid);
1098+
MTM_LOG1("Arbiter receive abort message for transaction %s (%llu) from node %d", ts->gid, (long64)ts->xid, node);
10921099
Assert(ts->status == TRANSACTION_STATUS_IN_PROGRESS);
10931100
MtmAbortTransaction(ts);
10941101
}

0 commit comments

Comments
 (0)