Attached is an updated DSM patch. I've left the core function of DSM only and dropped other complicated features in this release.
VACUUM finishs faster with the patch, but it's obvious... DSM vacuum sweeps only pages that have many dead tuples and leave some of them after vacuum. I'll examine the sweep behavior and the performance from now. * Features - DSM tracks pages worth vacuuming using 1bit/page bit. The threshold is two dead tuples or 2kB of deadspaces. - DSM is constructed at page flush. Almost of the works are done by bgwriter if it is properly configured. - 'VACUUM' command uses DSM. 'VACUUM ALL' always scans all pages. - This is including n_dead_tuples statistics fix. http://momjian.us/mhonarc/patches/msg00002.html * Configuration - max_dsm_relations (=1000) Counterpart to max_fsm_relations, but count tables only; Indexes are not tracked by DSM. - max_dsm_pages (=1024000) Counterpart to max_dsm_pages. Default values are configurated to 5 times of max_fsm_pages at initdb. - min_dsm_target (=8MB) Minimum size of tables of which dead space is tracked to avoid tracking small tables, including system catalogs. * Limitation - XID-wraparound vacuum is still required. VACUUM with DSM cannot update relfrozenxid, so we sometimes needs full-scan. - No recovery support. All contents of DSM and FSM are lost on crash. - DSM uses fixed size memory allocated at server start. We cannot change the value on-the-fly. If we want the feature, we need something like shared-memory-allocator or swap-supported memory management module. Regards, --- ITAGAKI Takahiro NTT Open Source Software Center
Description: Binary data
---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly