On 12/28/07, Robert Treat <xzilla@xxxxxxxxxxxxxxxxxxxxx> wrote: > On Thursday 27 December 2007 12:23, Samantha Atkins wrote: > > Since it is known to be dead > > is it automatically removed when there are no live transaction that > > reference or may reference it and its data page space marked available > > for new rows? If not, why not? I'm dredging my mind for stuff from > > my RDBMS implementation grad course a very long time ago. > The problem is you have determined in your mind that a row is "known dead" > without explination of how that would actually be determined. A given > transaction doesn't have a way to determine if there are live transaction > looking at the row, that would require quite a bit of knowledge about what > else is occuring in the system to be able to determine that. That level of > knowledge/complexity is what vacuum takes care of. If you're familiar with the intricacies of the garbage collection vs realloc/free debate surrounding programming languages, especially in multithreaded environments, this is basically the same thing applied to disk storage. PostgreSQL implements garbage collection. Its methods for doing it automatically are still being refined, hence the advice on manual tuning for specific workloads. ---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your message can get through to the mailing list cleanly