There has been a discussion on the general list about this area. One of
the members produced a test case for demonstrating rapid size increase.
I decided to see if I could induce similar behaviour with a more
(seemingly) benign example.
I tried this :
1) Create a table and load 100000 rows (with a primary key)
2) Run several threads update 1 row and commit (loop continously with a
rest every 100 updates or so)
3) Run 1 thread that (lazy) vacuums (every 3 minutes or so)
I ran 10 threads in 2) and saw my database grow from the initial size of
150M by about 1G per hour (I stopped my test after 5 hours @ 4.5G).
The table concerned uses a large text field... it might be instructive
to see if this is central to producing this growth (I will see if a more
conventional table design can exhibit this behaviour if anyone is keen
to know).
For those interested the test case I used can be found here :
http://homepages.slingshot.co.nz/~markir/tar/test/spin.tar.gz
regards
Mark