Dead Space Map version 3 (simplified)

From: ITAGAKI Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp>
To: pgsql-patches(at)postgresql(dot)org
Subject: Dead Space Map version 3 (simplified)
Date: 2007-03-30 08:59:56
Message-ID: 20070330095918.77DE.ITAGAKI.TAKAHIRO@oss.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches

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

Attachment Content-Type Size
deadspacemap_v3.patch.gz application/octet-stream 32.3 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2007-03-30 09:50:40 Re: Autovacuum vs statement_timeout
Previous Message ITAGAKI Takahiro 2007-03-30 08:40:08 Multibyte LIKE optimization

Browse pgsql-patches by date

  From Date Subject
Next Message Simon Riggs 2007-03-30 10:15:16 Re: [PATCHES] Full page writes improvement, code update
Previous Message ITAGAKI Takahiro 2007-03-30 08:40:08 Multibyte LIKE optimization