Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitfc42dcb

Browse files
knizhnikkelvich
authored andcommitted
Change cluster locking policy
1 parent7a675d8 commitfc42dcb

File tree

9 files changed

+167
-90
lines changed

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
staticvoidMtmCheckResponse(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)

[8]ページ先頭

©2009-2025 Movatter.jp