Skip to content

Commit 346199d

Browse files
committed
Set the priorities of all quorum synchronous standbys to 1.
In quorum-based synchronous replication, all the standbys listed in synchronous_standby_names equally have chances to be chosen as synchronous standbys. So they should have the same priority. However, previously, quorum standbys whose names appear earlier in the list were given higher priority values though the difference of those priority values didn't affect the selection of synchronous standbys. Users could see those "meaningless" priority values in pg_stat_replication and this was confusing. This commit gives all the quorum synchronous standbys the same highest priority, i.e., 1, in order to remove such confusion. Author: Fujii Masao Reviewed-by: Masahiko Sawada, Kyotaro Horiguchi Discussion: http://postgr.es/m/CAHGQGwEKOw=SmPLxJzkBsH6wwDBgOnVz46QjHbtsiZ-d-2RGUg@mail.gmail.com
1 parent cdd5bca commit 346199d

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/backend/replication/syncrep.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -951,7 +951,14 @@ SyncRepGetStandbyPriority(void)
951951
standby_name += strlen(standby_name) + 1;
952952
}
953953

954-
return (found ? priority : 0);
954+
if (!found)
955+
return 0;
956+
957+
/*
958+
* In quorum-based sync replication, all the standbys in the list
959+
* have the same priority, one.
960+
*/
961+
return (SyncRepConfig->syncrep_method == SYNC_REP_PRIORITY) ? priority : 1;
955962
}
956963

957964
/*

src/test/recovery/t/007_sync_rep.pl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ sub test_sync_state
186186
# for sync standbys in a quorum-based sync replication.
187187
test_sync_state(
188188
$node_master, qq(standby1|1|quorum
189-
standby2|2|quorum
189+
standby2|1|quorum
190190
standby4|0|async),
191191
'2 quorum and 1 async',
192192
'ANY 2(standby1, standby2)');

0 commit comments

Comments
 (0)