| From: | "Zeugswetter Andreas ADI SD" <ZeugswetterA(at)spardat(dot)at> |
|---|---|
| To: | "Heikki Linnakangas" <heikki(at)enterprisedb(dot)com>, "PostgreSQL-development" <pgsql-hackers(at)postgresql(dot)org> |
| Cc: | "Pavan Deolasee" <pavan(dot)deolasee(at)gmail(dot)com> |
| Subject: | Re: HOT WIP Patch - version 1 |
| Date: | 2007-02-14 17:57:15 |
| Message-ID: | E1539E0ED7043848906A8FF995BDA57901C138C5@m0143.s-mxs.net |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
> What's the verdict on relaxing the "live tuple's ctid doesn't
> change rule"? If we did allow that within a page, what would
> we need to change?
I already said this, but why would this need to be visible from the
outside ?
A few assumptions:
no back pointers
indexes only point at slots marked as roots (and non hot tuples)
During vacuum, you swap the tuples and keep a stub at the slot that the
user's ctid might be pointing at. You mark the stub to detect this
situation.
When a select/update by ctid comes along it needs to do one step to the
root
and use that tuple instead.
It needs a second vacuum (or a per page vacuum during update) to remove
the
extra stub when it is dead and not recently dead.
I fail to see the hole.
Andreas
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andreas Seltenreich | 2007-02-14 17:59:44 | Re: Writing triggers in C++ |
| Previous Message | Pavan Deolasee | 2007-02-14 17:53:28 | Re: HOT WIP Patch - version 1 |