Re: Decent VACUUM (was: Buglist)

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Manfred Koizar <mkoi-pg(at)aon(dot)at>
Cc: Vivek Khera <khera(at)kcilink(dot)com>, pgsql-general(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Decent VACUUM (was: Buglist)
Date: 2003-08-21 21:16:50
Message-ID: 26905.1061500610@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

Manfred Koizar <mkoi-pg(at)aon(dot)at> writes:
> better. AFAICS Vivek's problem is that it is hard enough to hold a
> good part of the working set in the cache, and still his disks are
> saturated. Now a VACUUM not only adds one more process to disk I/O
> contention, but also makes sure that the working set pages are *not*
> in memory which leads to higher I/O rates after the VACUUM.

We have had some people looking at improved buffer management
algorithms; LRU-2 or something smarter would help. I dunno whether
we can dissuade the kernel from flushing its cache though.

> If we teach VACUUM to not read pages that don't contain any dead
> tuples, this could be a significant improvement. I'm envisioning a
> data structure (reclaimable space map, RSM) similar to the FSM.
> Whenever a backend encounters a dead tuple it inserts a reference to
> its page into the RSM.

This assumes that backends will visit dead tuples with significant
probability. I doubt that assumption is tenable; it's certainly not
if you assume that no backend is doing seqscans. (And if they are,
then VACUUM is not the only I/O culprit...)

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Manfred Koizar 2003-08-21 21:33:10 Re: Decent VACUUM (was: Buglist)
Previous Message Philip Boonzaaier 2003-08-21 21:13:05 Re: Bulk Insert / Update / Delete

Browse pgsql-hackers by date

  From Date Subject
Next Message Manfred Koizar 2003-08-21 21:18:04 Re: [SQL] "SELECT IN" Still Broken in 7.4b
Previous Message Stephan Szabo 2003-08-21 21:07:08 Re: [SQL] "SELECT IN" Still Broken in 7.4b