On Thu, May 04, 2006 at 03:30:34PM -0400, Tom Lane wrote: > "Jim C. Nasby" <jnasby@xxxxxxxxxxxxx> writes: > > I'd actually been thinking about this recently, and had come up with the > > following half-baked ideas: > > > Allow a transaction to specify exactly what tables it will be touching, > > perhaps as an extension to BEGIN. Should any action that transaction > > takes attempt to access a table not specified, throw an error. > > > A possible variant on that would be to automatically determine at > > transaction start all the tables that would be accessed by that > > transaction. > > > Once that list is available, vacuum should be able to use it to ignore > > any transactions that have promised not to touch whatever table it's > > vacuuming. > > No, you missed my point entirely. The above would help not at all, > unless the restrictions were somehow propagated through XMIN > calculations, which seems impracticable. (Every backend calculate a > separate XMIN with respect to every table that's being mentioned by any > other backend? I don't think so...) I mentioned it further down the post, as well as the idea that we really don't care about short-lived transactions, so theoretically we could just compute this information for transactions that have been running for more than some period of time. Presumably the overhead of calculating a seperate XMIN for each table wouldn't be that great for a transaction that's already been running 15 seconds... -- Jim C. Nasby, Sr. Engineering Consultant jnasby@xxxxxxxxxxxxx Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461