Skip site navigation (1) Skip section navigation (2)

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: (view raw, whole thread or download thread mbox)
Lists: pgsql-hackerspgsql-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.

* 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.

ITAGAKI Takahiro
NTT Open Source Software Center

Attachment: deadspacemap_v3.patch.gz
Description: application/octet-stream (32.3 KB)


pgsql-hackers by date

Next:From: Heikki LinnakangasDate: 2007-03-30 09:50:40
Subject: Re: Autovacuum vs statement_timeout
Previous:From: ITAGAKI TakahiroDate: 2007-03-30 08:40:08
Subject: Multibyte LIKE optimization

pgsql-patches by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group