Thank you for remembering this problem, at least for me.
Interesting, I don't see why alone_cleanup and pending_lock are so differ. I'd like to understand that, but does somebody have an good theory? The single point in pending_lock patch is an suspicious exception in ProcSleep, this exception may cause problem in future.Well, turns out there's a quite significant difference, actually. The index sizes I get (quite stable after multiple runs): 9.5 : 2428 MB 9.6 + alone cleanup : 730 MB 9.6 + pending lock : 488 MB
I think, alone_cleanup patch is faster because regular insert could break its cleanup process if autovacuum waits to begin work on cleanup. So, insert process could returns earlier from pending cleanup process.So that's quite a significant difference, I guess. The load duration for each version look like this: 9.5 : 1415 seconds 9.6 + alone cleanup : 1310 seconds 9.6 + pending lock : 1380 seconds I'd say I'm happy with sacrificing ~5% of time in exchange for ~35% reduction of index size.
In attachment just rebased v2 alone_cleanup patch. -- Teodor Sigaev E-mail: teo...@sigaev.ru WWW: http://www.sigaev.ru/
gin_alone_cleanup-3.patch
Description: binary/octet-stream
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers