diff options
Diffstat (limited to 'src/backend/utils')
-rw-r--r-- | src/backend/utils/init/globals.c | 9 | ||||
-rw-r--r-- | src/backend/utils/misc/guc.c | 30 |
2 files changed, 7 insertions, 32 deletions
diff --git a/src/backend/utils/init/globals.c b/src/backend/utils/init/globals.c index 00288530c07..f1f8b177f35 100644 --- a/src/backend/utils/init/globals.c +++ b/src/backend/utils/init/globals.c @@ -103,13 +103,14 @@ int work_mem = 1024; int maintenance_work_mem = 16384; /* - * Primary determinants of sizes of shared-memory structures. MaxBackends is - * MaxConnections + autovacuum_max_workers + 1 (it is computed by the GUC - * assign hooks for those variables): + * Primary determinants of sizes of shared-memory structures. + * + * MaxBackends is computed by PostmasterMain after modules have had a chance to + * register background workers. */ int NBuffers = 1000; -int MaxBackends = 100; int MaxConnections = 90; +int MaxBackends = 0; int VacuumCostPageHit = 1; /* GUC parameters for vacuum */ int VacuumCostPageMiss = 10; diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index d91924cc234..ac5e4f3e48d 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -103,17 +103,6 @@ #define MAX_KILOBYTES (INT_MAX / 1024) #endif -/* - * Note: MAX_BACKENDS is limited to 2^23-1 because inval.c stores the - * backend ID as a 3-byte signed integer. Even if that limitation were - * removed, we still could not exceed INT_MAX/4 because some places compute - * 4*MaxBackends without any overflow check. This is rechecked in - * check_maxconnections, since MaxBackends is computed as MaxConnections - * plus the number of bgworkers plus autovacuum_max_workers plus one (for the - * autovacuum launcher). - */ -#define MAX_BACKENDS 0x7fffff - #define KB_PER_MB (1024) #define KB_PER_GB (1024*1024) @@ -199,9 +188,7 @@ static const char *show_tcp_keepalives_idle(void); static const char *show_tcp_keepalives_interval(void); static const char *show_tcp_keepalives_count(void); static bool check_maxconnections(int *newval, void **extra, GucSource source); -static void assign_maxconnections(int newval, void *extra); static bool check_autovacuum_max_workers(int *newval, void **extra, GucSource source); -static void assign_autovacuum_max_workers(int newval, void *extra); static bool check_effective_io_concurrency(int *newval, void **extra, GucSource source); static void assign_effective_io_concurrency(int newval, void *extra); static void assign_pgstat_temp_directory(const char *newval, void *extra); @@ -1615,7 +1602,7 @@ static struct config_int ConfigureNamesInt[] = }, &MaxConnections, 100, 1, MAX_BACKENDS, - check_maxconnections, assign_maxconnections, NULL + check_maxconnections, NULL, NULL }, { @@ -2290,7 +2277,7 @@ static struct config_int ConfigureNamesInt[] = }, &autovacuum_max_workers, 3, 1, MAX_BACKENDS, - check_autovacuum_max_workers, assign_autovacuum_max_workers, NULL + check_autovacuum_max_workers, NULL, NULL }, { @@ -8636,13 +8623,6 @@ check_maxconnections(int *newval, void **extra, GucSource source) return true; } -static void -assign_maxconnections(int newval, void *extra) -{ - MaxBackends = newval + autovacuum_max_workers + 1 + - GetNumShmemAttachedBgworkers(); -} - static bool check_autovacuum_max_workers(int *newval, void **extra, GucSource source) { @@ -8652,12 +8632,6 @@ check_autovacuum_max_workers(int *newval, void **extra, GucSource source) return true; } -static void -assign_autovacuum_max_workers(int newval, void *extra) -{ - MaxBackends = MaxConnections + newval + 1 + GetNumShmemAttachedBgworkers(); -} - static bool check_effective_io_concurrency(int *newval, void **extra, GucSource source) { |