On Monday, July 20th, Sentry was down for most of the US working day. We deeply regret any issues this may have caused for your team and have taken measures to reduce the risk of this happening in the future. For transparency purposes, and the hope of helping others who may find themselves in this situation, we’ve described the event in detail below.
Their provided config is:
Yet the postgres docs say:
I wonder if this is why they were running in to problems? Unless I’m mistaken, these settings will cause postgres to slowly accumulate very old XIDs until it’s forced to run a full table sweep at the last minute. It seems to me that, in a write-heavy situation, you’d want the table_age much less than the max_age. That way there is more headroom for a large vacuum to finish before postgres locks the database.