Re: [HACKERS] Buglist

From: "Shridhar Daithankar" <shridhar_daithankar(at)persistent(dot)co(dot)in>
To: pgsql-general(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [HACKERS] Buglist
Date: 2003-08-22 15:17:54
Message-ID: 3F46817A.16657.2E0B2B@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

On 22 Aug 2003 at 11:03, Jan Wieck wrote:

> Tom Lane wrote:
>
> > Jan Wieck <JanWieck(at)Yahoo(dot)com> writes:
> >> Shridhar Daithankar wrote:
> >>> Umm.. What does FSM does then? I was under impression that FSM stores page
> >>> pointers and vacuum work on FSM information only. In that case, it wouldn't
> >>> have to waste time to find out which pages to clean.
> >
> >> It's the other way around! VACUUM scan's the tables to find and reclaim
> >> free space and remembers that free space in the FSM.
> >
> > Right. One big question mark in my mind about these "partial vacuum"
> > proposals is whether they'd still allow adequate FSM information to be
> > maintained. If VACUUM isn't looking at most of the pages, there's no
> > very good way to acquire info about where there's free space.
>
> That's why I think it needs one more pg_stat column to count the number
> of vacuumed tuples. If one does
>
> tuples_updated + tuples_deleted - tuples_vacuumed
>
> he'll get approximately the number of tuples a regular vacuum might be
> able to reclaim. If that number is really small, no need for autovacuum
> to cause any big trouble by scanning the relation.
>
> Another way to give autovacuum some hints would be to return some number
> as commandtuples from vacuum. like the number of tuples actually
> vacuumed. That together with the new number of reltuples in pg_class
> will tell autovacuum how frequent a relation really needs scanning.

This kind of information does not really help autovacuum. If we are talking
about modifying backend stat collection algo., so that vacuum does minimum
work, is has translate to cheaper vacuum analyze so that autovacuum can fire it
at will any time. In the best case, another resident process like stat
collector can keep cleaning the deads.

This information must be in terms of pages and actually be maintained as per
page stat. Looking at number of tuples values does not give any idea to vacuum
how it is going to flush cache lines, either in postgresql or on OS. I doubt it
will help vacuum command in itself to be any lighter or more efficient.

If it is easy to do, I would favour maitaining two page maps as I mentioned in
another mail. One for pages in cache but not locked by any transaction and
another for pages which has some free space. If it is rare for a page to be
full, we can skip the later one. I think that could be good enough.

Bye
Shridhar

--
Office Automation: The use of computers to improve efficiency in the office by
removing anyone you would want to talk with over coffee.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Greg Stark 2003-08-22 15:21:09 Re: move to usenet?
Previous Message Robert Treat 2003-08-22 15:16:50 Re: Stored procedure advice needed

Browse pgsql-hackers by date

  From Date Subject
Next Message Greg Stark 2003-08-22 15:28:55 Re: [SQL] "SELECT IN" Still Broken in 7.4b
Previous Message Shridhar Daithankar 2003-08-22 15:11:25 Re: [SQL] "SELECT IN" Still Broken in 7.4b