mirror of
https://github.com/postgres/postgres.git
synced 2025-11-10 17:42:29 +03:00
Reimplement free-space-map management as per recent discussions.
Adjustable threshold is gone in favor of keeping track of total requested page storage and doling out proportional fractions to each relation (with a minimum amount per relation, and some quantization of the results to avoid thrashing with small changes in page counts). Provide special- case code for indexes so as not to waste space storing useless page free space counts. Restructure internal data storage to be a flat array instead of list-of-chunks; this may cost a little more work in data copying when reorganizing, but allows binary search to be used during lookup_fsm_page_entry().
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
* command, configuration file, and command line options.
|
||||
* See src/backend/utils/misc/README for more information.
|
||||
*
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.115 2003/02/23 23:27:21 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.116 2003/03/04 21:51:21 tgl Exp $
|
||||
*
|
||||
* Copyright 2000 by PostgreSQL Global Development Group
|
||||
* Written by Peter Eisentraut <peter_e@gmx.net>.
|
||||
@@ -644,11 +644,11 @@ static struct config_int
|
||||
|
||||
{
|
||||
{"max_fsm_relations", PGC_POSTMASTER}, &MaxFSMRelations,
|
||||
1000, 10, INT_MAX, NULL, NULL
|
||||
1000, 100, INT_MAX, NULL, NULL
|
||||
},
|
||||
{
|
||||
{"max_fsm_pages", PGC_POSTMASTER}, &MaxFSMPages,
|
||||
10000, 1000, INT_MAX, NULL, NULL
|
||||
20000, 1000, INT_MAX, NULL, NULL
|
||||
},
|
||||
|
||||
{
|
||||
|
||||
@@ -48,10 +48,11 @@
|
||||
# Shared Memory Size
|
||||
#
|
||||
#shared_buffers = 64 # min max_connections*2 or 16, 8KB each
|
||||
#max_fsm_relations = 1000 # min 10, fsm is free space map, ~40 bytes
|
||||
#max_fsm_pages = 10000 # min 1000, fsm is free space map, ~6 bytes
|
||||
#max_locks_per_transaction = 64 # min 10
|
||||
#wal_buffers = 8 # min 4, typically 8KB each
|
||||
# fsm = free space map
|
||||
#max_fsm_relations = 1000 # min 100, ~50 bytes each
|
||||
#max_fsm_pages = 20000 # min max_fsm_relations*16, 6 bytes each
|
||||
|
||||
#
|
||||
# Non-shared Memory Sizes
|
||||
|
||||
Reference in New Issue
Block a user