@@ -73,6 +73,8 @@ static void process_remote_insert(StringInfo s, Relation rel);
73
73
static void process_remote_update (StringInfo s , Relation rel );
74
74
static void process_remote_delete (StringInfo s , Relation rel );
75
75
76
+ static int MtmReplicationNode ;
77
+
76
78
/*
77
79
* Search the index 'idxrel' for a tuple identified by 'skey' in 'rel'.
78
80
*
@@ -465,41 +467,40 @@ read_rel(StringInfo s, LOCKMODE mode)
465
467
}
466
468
467
469
static void
468
- MtmBeginSession (int nodeId )
470
+ MtmBeginSession (void )
469
471
{
470
- #if 0
471
472
char slot_name [MULTIMASTER_MAX_SLOT_NAME_SIZE ];
472
- sprintf (slot_name , MULTIMASTER_SLOT_PATTERN , nodeId );
473
+ MtmLockNode (MtmReplicationNode );
474
+ sprintf (slot_name , MULTIMASTER_SLOT_PATTERN , MtmReplicationNode );
473
475
Assert (replorigin_session_origin == InvalidRepOriginId );
474
476
replorigin_session_origin = replorigin_by_name (slot_name , false);
475
- MTM_INFO ("%d: Begin setup replorigin session: %d\n" , MyProcPid , replorigin_session_origin );
477
+ MTM_TRACE ("%d: Begin setup replorigin session: %d\n" , MyProcPid , replorigin_session_origin );
476
478
replorigin_session_setup (replorigin_session_origin );
477
- MTM_INFO ("%d: End setup replorigin session: %d\n" , MyProcPid , replorigin_session_origin );
478
- #endif
479
+ MTM_TRACE ("%d: End setup replorigin session: %d\n" , MyProcPid , replorigin_session_origin );
479
480
}
480
481
481
482
static void
482
483
MtmEndSession (void )
483
484
{
484
485
if (replorigin_session_origin != InvalidRepOriginId ) {
485
- MTM_INFO ("%d: Begin reset replorigin session: %d\n" , MyProcPid , replorigin_session_origin );
486
+ MTM_TRACE ("%d: Begin reset replorigin session: %d\n" , MyProcPid , replorigin_session_origin );
486
487
replorigin_session_origin = InvalidRepOriginId ;
487
488
replorigin_session_reset ();
488
- MTM_INFO ("%d: End reset replorigin session: %d\n" , MyProcPid , replorigin_session_origin );
489
+ MtmUnlockNode (MtmReplicationNode );
490
+ MTM_TRACE ("%d: End reset replorigin session: %d\n" , MyProcPid , replorigin_session_origin );
489
491
}
490
492
}
491
493
492
494
static void
493
495
process_remote_commit (StringInfo in )
494
496
{
495
497
uint8 flags ;
496
- uint8 nodeId ;
497
498
csn_t csn ;
498
499
const char * gid = NULL ;
499
500
500
501
/* read flags */
501
502
flags = pq_getmsgbyte (in );
502
- nodeId = pq_getmsgbyte (in );
503
+ MtmReplicationNode = pq_getmsgbyte (in );
503
504
504
505
/* read fields */
505
506
replorigin_session_origin_lsn = pq_getmsgint64 (in ); /* commit_lsn */
@@ -515,7 +516,7 @@ process_remote_commit(StringInfo in)
515
516
MTM_TRACE ("%d: PGLOGICAL_COMMIT commit\n" , MyProcPid );
516
517
if (IsTransactionState ()) {
517
518
Assert (TransactionIdIsValid (MtmGetCurrentTransactionId ()));
518
- MtmBeginSession (nodeId );
519
+ MtmBeginSession ();
519
520
CommitTransactionCommand ();
520
521
}
521
522
break ;
@@ -529,7 +530,8 @@ process_remote_commit(StringInfo in)
529
530
BeginTransactionBlock ();
530
531
CommitTransactionCommand ();
531
532
StartTransactionCommand ();
532
- MtmBeginSession (nodeId );
533
+
534
+ MtmBeginSession ();
533
535
/* PREPARE itself */
534
536
MtmSetCurrentTransactionGID (gid );
535
537
PrepareTransactionBlock (gid );
@@ -543,7 +545,7 @@ process_remote_commit(StringInfo in)
543
545
gid = pq_getmsgstring (in );
544
546
MTM_TRACE ("%d: PGLOGICAL_COMMIT_PREPARED commit: csn=%ld, gid=%s\n" , MyProcPid , csn , gid );
545
547
StartTransactionCommand ();
546
- MtmBeginSession (nodeId );
548
+ MtmBeginSession ();
547
549
MtmSetCurrentTransactionCSN (csn );
548
550
MtmSetCurrentTransactionGID (gid );
549
551
FinishPreparedTransaction (gid , true);
0 commit comments