Re: BUG #17717: Regression in vacuumdb (15 is slower than 10/11 and possible memory issue)
От | Justin Pryzby |
---|---|
Тема | Re: BUG #17717: Regression in vacuumdb (15 is slower than 10/11 and possible memory issue) |
Дата | |
Msg-id | 20221229012910.GG1153@telsasoft.com обсуждение исходный текст |
Ответ на | Re: BUG #17717: Regression in vacuumdb (15 is slower than 10/11 and possible memory issue) (Michael Paquier <michael@paquier.xyz>) |
Список | pgsql-bugs |
On Sun, Dec 18, 2022 at 11:21:47AM +0900, Michael Paquier wrote: > On Thu, Dec 15, 2022 at 01:56:30PM -0500, Tom Lane wrote: > > * To fix vacuumdb properly, it might be enough to get it to > > batch VACUUMs, say by naming up to 1000 tables per command > > instead of just one. I'm not sure how that would interact > > with its parallelization logic, though. It's not really > > solving the O(N^2) issue either, just pushing it further out. > > I have been thinking about this part, and using a hardcoded rule for > the batches would be tricky. The list of relations returned by the > scan of pg_class are ordered by relpages, so depending on the > distribution of the sizes (few tables with a large size and a lot of > table with small sizes, exponential distribution of table sizes), we > may finish with more downsides than upsides in some cases, even if we > use a linear rule based on the number of relations, or even if we > distribute the relations across the slots in a round robin fashion for > example. I've always found it weird that it uses "ORDER BY relpages". I'd prefer if it could ORDER BY age(relfrozenxid) or GREATEST(age(relfrozenxid), age(relminmxid)), at least if you specify one of the --min-*age parms. Or something less hardcoded and unconfigurable. -- Justin
В списке pgsql-bugs по дате отправления: