Re: Berserk Autovacuum (let's save next Mandrill)
Vik Fearing <vik.fearing@2ndquadrant.com>
From: Vik Fearing <vik.fearing@2ndquadrant.com>
To: Darafei "Komяpa" Praliaskouski <me@komzpa.net>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2019-03-30T16:55:20Z
Lists: pgsql-hackers
On 27/03/2019 21:54, Darafei "Komяpa" Praliaskouski wrote: > Hi hackers, > > Attached is sketch of small patch that fixes several edge cases with > autovacuum. Long story short autovacuum never comes to append only > tables, killing large productions. > > First case, mine. > https://www.postgresql.org/message-id/CAC8Q8tLBeAxR%2BBXWuKK%2BHP5m8tEVYn270CVrDvKXt%3D0PkJTY9g%40mail.gmail.com > > We had a table we were appending and wanted Index Only Scan to work. For > it to work, you need to call VACUUM manually, since VACUUM is the only > way to mark pages all visible, and autovacuum never comes to append only > tables. We were clever to invent a workflow without dead tuples and it > painfully bit us. > > Second case, just read in the news. > https://mailchimp.com/what-we-learned-from-the-recent-mandrill-outage/ > > Mandrill has 6TB append only table that autovacuum probably never > vacuumed. Then anti-wraparound came and production went down. If > autovacuum did its job before that last moment, it would probably be okay. > > Idea: look not on dead tuples, but on changes, just like ANALYZE does. > It's my first patch on Postgres, it's probably all wrong but I hope it > helps you get the idea. This was suggested and rejected years ago: https://www.postgresql.org/message-id/b970f20f-f096-2d3a-6c6d-ee887bd30cfb@2ndquadrant.fr -- Vik Fearing +33 6 46 75 15 36 http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support
Commits
-
Further improve stability fix for partition_aggregate test.
- 18d85e9b8a2b 13.0 landed
-
Improve stability fix for partition_aggregate test.
- 7cb0a423f914 13.0 landed
-
Attempt to stabilize partitionwise_aggregate test
- cefb82d49e21 13.0 landed
-
Fix race condition in statext_store().
- fe3036527a1f 13.0 landed
- 6c426cd43790 12.3 landed
-
Attempt to fix unstable regression tests, take 2
- 24566b359d09 13.0 landed
-
Attempt to fix unstable regression tests
- 2dc16efedc76 13.0 landed
-
Trigger autovacuum based on number of INSERTs
- b07642dbcd8d 13.0 landed
-
Fix upper limit for vacuum_cleanup_index_scale_factor
- 4d54543efa5e 11.0 cited