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

Commit 91cca9c

Browse files
committed
Merge branch 'master' of github.com:postgrespro/postgres_cluster
2 parents 38c4a78 + 494e6dc commit 91cca9c

File tree

3 files changed

+9
-68
lines changed

3 files changed

+9
-68
lines changed

contrib/mmts/arbiter.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -665,8 +665,8 @@ static void MtmTransReceiver(Datum arg)
665665
do {
666666
struct timeval tv;
667667
events = inset;
668-
tv.tv_sec = MtmKeepaliveTimeout/USEC;
669-
tv.tv_usec = MtmKeepaliveTimeout%USEC;
668+
tv.tv_sec = MtmKeepaliveTimeout/USECS_PER_SEC;
669+
tv.tv_usec = MtmKeepaliveTimeout%USECS_PER_SEC;
670670
do {
671671
n = select(max_fd+1, &events, NULL, NULL, &tv);
672672
} while (n < 0 && errno == EINTR);

contrib/mmts/multimaster.c

Lines changed: 6 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ typedef enum
9393
#define MTM_MAP_SIZE 1003
9494
#define MIN_WAIT_TIMEOUT 1000
9595
#define MAX_WAIT_TIMEOUT 100000
96-
#define STATUS_POLL_DELAY USEC
96+
#define STATUS_POLL_DELAY USECS_PER_SEC
9797

9898
void _PG_init(void);
9999
void _PG_fini(void);
@@ -262,7 +262,7 @@ timestamp_t MtmGetSystemTime(void)
262262
{
263263
struct timeval tv;
264264
gettimeofday(&tv, NULL);
265-
return (timestamp_t)tv.tv_sec*USEC + tv.tv_usec + Mtm->timeShift;
265+
return (timestamp_t)tv.tv_sec*USECS_PER_SEC + tv.tv_usec + Mtm->timeShift;
266266
}
267267

268268
timestamp_t MtmGetCurrentTime(void)
@@ -402,7 +402,7 @@ bool MtmXidInMVCCSnapshot(TransactionId xid, Snapshot snapshot)
402402
if (delta > maxSleepTime) {
403403
maxSleepTime = delta;
404404
}
405-
if (now > prevReportTime + USEC*10) {
405+
if (now > prevReportTime + USECS_PER_SEC*10) {
406406
prevReportTime = now;
407407
if (firstReportTime == 0) {
408408
firstReportTime = now;
@@ -443,70 +443,13 @@ bool MtmXidInMVCCSnapshot(TransactionId xid, Snapshot snapshot)
443443
* We collest oldest CSNs from all nodes and choose minimum from them.
444444
* If no such XID can be located, then return previously observed oldest XID
445445
*/
446-
#if 0
447-
static TransactionId
448-
MtmAdjustOldestXid(TransactionId xid)
449-
{
450-
if (TransactionIdIsValid(xid)) {
451-
MtmTransState *ts, *prev = NULL;
452-
csn_t oldestSnapshot = 0;
453-
int i;
454-
455-
MtmLock(LW_EXCLUSIVE);
456-
for (ts = Mtm->transListHead; ts != NULL; ts = ts->next) {
457-
if (TransactionIdPrecedes(ts->xid, xid)
458-
&& ts->status == TRANSACTION_STATUS_COMMITTED
459-
&& ts->csn > oldestSnapshot)
460-
{
461-
oldestSnapshot = ts->csn;
462-
}
463-
}
464-
Mtm->nodes[MtmNodeId-1].oldestSnapshot = oldestSnapshot;
465-
for (i = 0; i < Mtm->nAllNodes; i++) {
466-
if (!BIT_CHECK(Mtm->disabledNodeMask, i)
467-
&& Mtm->nodes[i].oldestSnapshot < oldestSnapshot)
468-
{
469-
oldestSnapshot = Mtm->nodes[i].oldestSnapshot;
470-
}
471-
}
472-
oldestSnapshot -= MtmVacuumDelay*USEC;
473-
for (ts = Mtm->transListHead;
474-
ts != NULL
475-
&& ts->csn < oldestSnapshot
476-
&& TransactionIdPrecedes(ts->xid, xid)
477-
&& (ts->status == TRANSACTION_STATUS_COMMITTED ||
478-
ts->status == TRANSACTION_STATUS_ABORTED);
479-
ts = ts->next)
480-
{
481-
if (ts->status == TRANSACTION_STATUS_COMMITTED) {
482-
prev = ts;
483-
}
484-
}
485-
if (prev != NULL) {
486-
for (ts = Mtm->transListHead; ts != prev; ts = ts->next) {
487-
/* Remove information about too old transactions */
488-
Assert(ts->status != TRANSACTION_STATUS_UNKNOWN);
489-
hash_search(MtmXid2State, &ts->xid, HASH_REMOVE, NULL);
490-
}
491-
Mtm->transListHead = prev;
492-
Mtm->oldestXid = xid = prev->xid;
493-
} else if (TransactionIdPrecedes(Mtm->oldestXid, xid)) {
494-
xid = Mtm->oldestXid;
495-
}
496-
MtmUnlock();
497-
}
498-
return xid;
499-
}
500-
#else
501446
static TransactionId
502447
MtmAdjustOldestXid(TransactionId xid)
503448
{
504449
if (TransactionIdIsValid(xid)) {
505450
MtmTransState *ts, *prev = NULL;
506451
int i;
507452

508-
return FirstNormalTransactionId;
509-
510453
MtmLock(LW_EXCLUSIVE);
511454
ts = (MtmTransState*)hash_search(MtmXid2State, &xid, HASH_FIND, NULL);
512455
if (ts != NULL && ts->status == TRANSACTION_STATUS_COMMITTED) {
@@ -519,7 +462,7 @@ MtmAdjustOldestXid(TransactionId xid)
519462
oldestSnapshot = Mtm->nodes[i].oldestSnapshot;
520463
}
521464
}
522-
oldestSnapshot -= MtmVacuumDelay*USEC;
465+
oldestSnapshot -= MtmVacuumDelay*USECS_PER_SEC;
523466

524467
for (ts = Mtm->transListHead;
525468
ts != NULL
@@ -541,7 +484,7 @@ MtmAdjustOldestXid(TransactionId xid)
541484
Mtm->transListHead = prev;
542485
Mtm->oldestXid = xid = prev->xid;
543486
} else {
544-
Assert(TransactionIdPrecedesOrEqual(Mtm->oldestXid, xid));
487+
Assert(TransactionIdPrecedesOrEquals(Mtm->oldestXid, xid));
545488
xid = Mtm->oldestXid;
546489
}
547490
} else {
@@ -553,7 +496,6 @@ MtmAdjustOldestXid(TransactionId xid)
553496
}
554497
return xid;
555498
}
556-
#endif
557499
/*
558500
* -------------------------------------------
559501
* Transaction list manipulation
@@ -2357,7 +2299,7 @@ mtm_get_nodes_state(PG_FUNCTION_ARGS)
23572299
usrfctx->values[4] = Int64GetDatum(lag);
23582300
usrfctx->nulls[4] = lag < 0;
23592301
usrfctx->values[5] = Int64GetDatum(Mtm->transCount ? Mtm->nodes[usrfctx->nodeId-1].transDelay/Mtm->transCount : 0);
2360-
usrfctx->values[6] = TimestampTzGetDatum(time_t_to_timestamptz(Mtm->nodes[usrfctx->nodeId-1].lastStatusChangeTime/USEC));
2302+
usrfctx->values[6] = TimestampTzGetDatum(time_t_to_timestamptz(Mtm->nodes[usrfctx->nodeId-1].lastStatusChangeTime/USECS_PER_SEC));
23612303
usrfctx->values[7] = CStringGetTextDatum(Mtm->nodes[usrfctx->nodeId-1].con.connStr);
23622304
usrfctx->nodeId += 1;
23632305

contrib/mmts/multimaster.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@
4646
#define MULTIMASTER_BROADCAST_SERVICE "mtm_broadcast"
4747
#define MULTIMASTER_ADMIN "mtm_admin"
4848

49-
#define USEC 1000000
50-
#define MB (1024*1024)
49+
#define MB (1024*1024L)
5150

5251
#define USEC_TO_MSEC(t) ((t)/1000)
5352
#define MSEC_TO_USEC(t) ((t)*1000)

0 commit comments

Comments
 (0)