On Sat, 20 Aug 2005, Tom Lane wrote:
> Gavin Sherry <swm@linuxworld.com.au> writes:
> > I've written some quick scripts. One just vacuums constantly (999 vacuums
> > to 1 vacuum full) while three other scripts three randomly insert
> > into, update and delete from 3 tables. There's a mix of small and large
> > transactions. The tables have a single int column. It is set up to run 3
> > million transactions across the 3 scripts.
>
> Note that since the issues have mainly to do with update chains, it'd be
> good to stress cases where a row is updated multiple times before being
> deleted. And use at least one long-running transaction, so that VACUUM
> can't just throw away the update chain.
Right.
I modified the test so have multiple updates of a given row mixed with
concurrent long running read transactions. Vacuum was running repeatedly
in a concurrent session. I did not encounter any problems.
However, the results are inconclusive since I ran the same test against
HEAD from 10 days ago and didn't manage to trigger the problem Teodor's
script did. I'll take a better look tomorrow.
Gavin