On Thu, May 04, 2006 at 03:30:34PM -0400, Tom Lane wrote:
> "Jim C. Nasby" <jnasby@pervasive.com> 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@pervasive.com
Pervasive Software http://pervasive.com work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461