From 391eb5e5b6a78fce5179808379cdae20baedd9c3 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 4 Mar 2003 21:51:22 +0000 Subject: 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(). --- doc/src/sgml/runtime.sgml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'doc/src') diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index b023940dc3d..86d5ddc2852 100644 --- a/doc/src/sgml/runtime.sgml +++ b/doc/src/sgml/runtime.sgml @@ -1,5 +1,5 @@ @@ -1725,7 +1725,9 @@ dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir' Sets the maximum number of disk pages for which free space will - be tracked in the shared free-space map. The default is 10000. + be tracked in the shared free-space map. Six bytes of shared memory + are consumed for each page slot. This setting must be more than + 16 * max_fsm_relations. The default is 20000. This option can only be set at server start. @@ -1735,9 +1737,11 @@ dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir' MAX_FSM_RELATIONS (integer) - Sets the maximum number of relations (tables) for which free - space will be tracked in the shared free-space map. The default - is 1000. This option can only be set at server start. + Sets the maximum number of relations (tables and indexes) for which + free space will be tracked in the shared free-space map. Roughly + fifty bytes of shared memory are consumed for each slot. + The default is 1000. + This option can only be set at server start. -- cgit v1.2.3