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

Commit d9384a4

Browse files
committed
Remove postmaster.c's check that NBuffers is at least twice MaxBackends.
With the addition of multiple autovacuum workers, our choices were to delete the check, document the interaction with autovacuum_max_workers, or complicate the check to try to hide that interaction. Since this restriction has never been adequate to ensure backends can't run out of pinnable buffers, it doesn't really have enough excuse to live to justify the second or third choices. Per discussion of a complaint from Andreas Kling (see also bug #3888). This commit also removes several documentation references to this restriction, but I'm not sure I got them all.
1 parent f4230d2 commit d9384a4

File tree

4 files changed

+9
-27
lines changed

4 files changed

+9
-27
lines changed

doc/src/sgml/config.sgml

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.167 2008/03/05 16:59:10 momjian Exp $ -->
1+
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.168 2008/03/09 04:56:28 tgl Exp $ -->
22

33
<chapter Id="runtime-config">
44
<title>Server Configuration</title>
@@ -736,8 +736,7 @@ SET ENABLE_SEQSCAN TO OFF;
736736
memory buffers. The default is typically 32 megabytes
737737
(<literal>32MB</>), but might be less if your kernel settings will
738738
not support it (as determined during <application>initdb</>).
739-
This setting must be at least 128 kilobytes and at least 16
740-
kilobytes times <xref linkend="guc-max-connections">. (Non-default
739+
This setting must be at least 128 kilobytes. (Non-default
741740
values of <symbol>BLCKSZ</symbol> change the minimum.) However,
742741
settings significantly higher than the minimum are usually needed
743742
for good performance. Several tens of megabytes are recommended

src/backend/postmaster/postmaster.c

+1-11
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
*
3838
*
3939
* IDENTIFICATION
40-
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.552 2008/02/20 22:46:24 tgl Exp $
40+
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.553 2008/03/09 04:56:28 tgl Exp $
4141
*
4242
* NOTES
4343
*
@@ -688,16 +688,6 @@ PostmasterMain(int argc, char *argv[])
688688
/*
689689
* Check for invalid combinations of GUC settings.
690690
*/
691-
if (NBuffers < 2 * MaxBackends || NBuffers < 16)
692-
{
693-
/*
694-
* Do not accept -B so small that backends are likely to starve for
695-
* lack of buffers. The specific choices here are somewhat arbitrary.
696-
*/
697-
write_stderr("%s: the number of buffers (-B) must be at least twice the number of allowed connections (-N) and at least 16\n", progname);
698-
ExitPostmaster(1);
699-
}
700-
701691
if (ReservedBackends >= MaxBackends)
702692
{
703693
write_stderr("%s: superuser_reserved_connections must be less than max_connections\n", progname);

src/backend/utils/misc/guc.c

+4-10
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
* Written by Peter Eisentraut <peter_e@gmx.net>.
1111
*
1212
* IDENTIFICATION
13-
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.433 2008/03/06 16:31:42 momjian Exp $
13+
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.434 2008/03/09 04:56:28 tgl Exp $
1414
*
1515
*--------------------------------------------------------------------
1616
*/
@@ -1195,16 +1195,10 @@ static struct config_int ConfigureNamesInt[] =
11951195
},
11961196

11971197
/*
1198-
* Note: There is some postprocessing done in PostmasterMain() to make
1199-
* sure the buffers are at least twice the number of backends, so the
1200-
* constraints here are partially unused. Similarly, the superuser
1201-
* reserved number is checked to ensure it is less than the max backends
1202-
* number.
1203-
*
1204-
* MaxBackends is limited to INT_MAX/4 because some places compute
1205-
* 4*MaxBackends without any overflow check. This check is made on
1198+
* Note: MaxBackends is limited to INT_MAX/4 because some places compute
1199+
* 4*MaxBackends without any overflow check. This check is made in
12061200
* assign_maxconnections, since MaxBackends is computed as MaxConnections
1207-
* + autovacuum_max_workers.
1201+
* plus autovacuum_max_workers.
12081202
*
12091203
* Likewise we have to limit NBuffers to INT_MAX/2.
12101204
*/

src/backend/utils/misc/postgresql.conf.sample

+2-3
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,7 @@
6060
#port = 5432 # (change requires restart)
6161
#max_connections = 100 # (change requires restart)
6262
# Note: Increasing max_connections costs ~400 bytes of shared memory per
63-
# connection slot, plus lock space (see max_locks_per_transaction). You might
64-
# also need to raise shared_buffers to support more connections.
63+
# connection slot, plus lock space (see max_locks_per_transaction).
6564
#superuser_reserved_connections = 3 # (change requires restart)
6665
#unix_socket_directory = '' # (change requires restart)
6766
#unix_socket_group = '' # (change requires restart)
@@ -104,7 +103,7 @@
104103

105104
# - Memory -
106105

107-
#shared_buffers = 32MB # min 128kB or max_connections*16kB
106+
#shared_buffers = 32MB # min 128kB
108107
# (change requires restart)
109108
#temp_buffers = 8MB # min 800kB
110109
#max_prepared_transactions = 5 # can be 0 or more

0 commit comments

Comments
 (0)