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 ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
