On 08/22/2012 05:19 PM, Jeff Janes wrote:



     Shared Buffers   Time
       48Gb           2058ms
        8Gb            372ms
        1gb             67ms


Is this expected behaviour?
Yeah.  Clustering the table means that all the indexes and the old
version of the table all get dropped, and each time something is
dropped the entire buffer pool is scoured to remove the old buffers.

In my hands, this is about 10 times better in 9.2 than 9.1.4, at 8GB.
Because now the scouring is done once per object, not once per fork.
Also, the check is done without an initial spinlock.

It perhaps could be improved further by only scouring the pool once,
at the end of the transaction, with a hash of all objects to be
dropped.




FYI, I have rerun the tests on amazon with 9.2 BETA - the improvement I saw ranged from a factor of roughly 2 (with 1Gb of shared memory) to 6 (with 48Gb).

cheers

andrew


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to