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

Re: HOT patch - version 15

From: Gregory Stark <stark(at)enterprisedb(dot)com>
To: "Bruce Momjian" <bruce(at)momjian(dot)us>
Cc: "Pavan Deolasee" <pavan(dot)deolasee(at)gmail(dot)com>, "Simon Riggs" <simon(at)2ndquadrant(dot)com>, "Heikki Linnakangas" <heikki(at)enterprisedb(dot)com>, "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "PostgreSQL-patches" <pgsql-patches(at)postgresql(dot)org>
Subject: Re: HOT patch - version 15
Date: 2007-09-10 18:03:56
Message-ID: 87odgamm7n.fsf@oxford.xeocode.com (view raw or flat)
Thread:
Lists: pgsql-patches
"Bruce Momjian" <bruce(at)momjian(dot)us> writes:

> Looking at the patch I see:
>
> +       /*
> +        * Mark the page as clear of prunable tuples. If we find a tuple which
> +        * may become prunable, we shall set the hint again.
> +        */
> +       PageClearPrunable(page);
>
> I like the idea of the page hint bit, but my question is if there is a
> long-running transaction, isn't each SELECT going to try to defragment a
> page over and over again because there is still something prunable on
> the page?

Well it'll try to prune the chains over and over again. If it doesn't find
anything it won't defragment, but yes.

I think we could tackle that by storing on the page the oldest xmax which
would allow us to prune a tuple. Then you could compare RecentGlobalXmin
against that and not bother looking at any other chains if it hasn't been
passed yet. 

It would be hard to do that with single-chain pruning though, once you the
limiting tuple you would then wouldn't know what the next limiting xmax is
until the next time you do a full-page prune. Still that gets us down to at
most two full-page prunes per update instead of a potentially unbounded number
of prunes.

This seems like a further optimization to think about after we have a place to
trigger the pruning where it'll do the most good.

-- 
  Gregory Stark
  EnterpriseDB          http://www.enterprisedb.com

In response to

Responses

pgsql-patches by date

Next:From: Florian PflugDate: 2007-09-10 18:05:23
Subject: Re: HOT patch - version 15
Previous:From: Bruce MomjianDate: 2007-09-10 17:49:23
Subject: Re: HOT patch - version 15

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