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

Commit 2d202cd

Browse files
danolivoarssher
authored andcommitted
[PGPRO-3365] Add syncpoint_interval GUC
Cherry-picked from a0cae9aeb5a1952ec9bb85762a30baa60137931c tags: multimaster
1 parent 266ecc0 commit 2d202cd

File tree

4 files changed

+24
-3
lines changed

4 files changed

+24
-3
lines changed

src/include/multimaster.h

-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
#define MULTIMASTER_ADMIN "mtm_admin"
3737
#define MULTIMASTER_PRECOMMITTED "precommitted"
3838
#define MULTIMASTER_PREABORTED "preaborted"
39-
#define MULTIMASTER_SYNCPOINT_INTERVAL 10*1024*1024
4039

4140
#define MTM_MAX_NODES 16
4241

src/include/syncpoint.h

+4
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ typedef struct
3333
XLogRecPtr origin_lsn;
3434
} FilterEntry;
3535

36+
37+
extern int MtmSyncpointInterval;
38+
39+
3640
extern void MaybeLogSyncpoint(void);
3741
extern void SyncpointRegister(int origin_node_id, XLogRecPtr origin_lsn,
3842
XLogRecPtr receiver_lsn);

src/multimaster.c

+16
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#include "logger.h"
3939
#include "commit.h"
4040
#include "messaging.h"
41+
#include "syncpoint.h"
4142

4243
#include "compat.h"
4344

@@ -584,6 +585,21 @@ NULL);
584585
NULL
585586
);
586587

588+
DefineCustomIntVariable(
589+
"multimaster.syncpoint_interval",
590+
"Size of generated WAL between syncpoints",
591+
NULL,
592+
&MtmSyncpointInterval,
593+
10*1024, /* 10 MB */
594+
0,
595+
INT_MAX,
596+
PGC_SIGHUP,
597+
GUC_UNIT_KB,
598+
NULL,
599+
NULL,
600+
NULL
601+
);
602+
587603
/* MtmDeadlockDetectorInit(MTM_MAX_NODES); */
588604

589605
/*

src/syncpoint.c

+4-2
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
#include "syncpoint.h"
4747
#include "logger.h"
4848

49+
int MtmSyncpointInterval; /* in kilobytes */
50+
4951
/* XXX: change to some receiver-local structures */
5052
static int
5153
origin_id_to_node_id(RepOriginId origin_id, MtmConfig *mtm_cfg)
@@ -87,11 +89,11 @@ void
8789
MaybeLogSyncpoint(void)
8890
{
8991
/* do unlocked check first */
90-
if (GetInsertRecPtr() - Mtm->latestSyncpoint < MULTIMASTER_SYNCPOINT_INTERVAL)
92+
if (GetInsertRecPtr() - Mtm->latestSyncpoint < MtmSyncpointInterval * 1024)
9193
return;
9294

9395
LWLockAcquire(Mtm->syncpoint_lock, LW_EXCLUSIVE);
94-
if (GetInsertRecPtr() - Mtm->latestSyncpoint >= MULTIMASTER_SYNCPOINT_INTERVAL)
96+
if (GetInsertRecPtr() - Mtm->latestSyncpoint >= MtmSyncpointInterval * 1024)
9597
{
9698
XLogRecPtr syncpoint_lsn;
9799

0 commit comments

Comments
 (0)