Re: brin index vacuum versus transaction snapshots
От | Alvaro Herrera |
---|---|
Тема | Re: brin index vacuum versus transaction snapshots |
Дата | |
Msg-id | 20150804182812.GT2441@postgresql.org обсуждение исходный текст |
Ответ на | Re: brin index vacuum versus transaction snapshots (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: brin index vacuum versus transaction snapshots
|
Список | pgsql-hackers |
Robert Haas wrote: > On Fri, Jul 31, 2015 at 3:45 PM, Alvaro Herrera > <alvherre@2ndquadrant.com> wrote: > > I think the only way to close this hole is to have summarize_range() > > sleep until all open snapshots are gone after inserting the placeholder > > tuple and before acquiring the snapshot, similarly to how CREATE INDEX > > CONCURRENTLY does it. > > That's gonna be really slow, though, right? Even if you rework things > so that vacuum inserts all the placeholder tuples first, then waits, > then does all the summarization, that could easily turn a vacuum that > would have finished in a second into one that instead takes multiple > hours. During that time an AV worker is pinned down, and all sorts of > badness can ensue. Yeah, it is bad and I was concerned about that too. Thankfully I found another way to solve it, which is to forgo usage of MVCC here and instead use SnapshotAny. There's already a mode in IndexBuildHeapRangeScan that uses SnapshotAny, but it needs some tweaks to do what we need. I'm going to propose a patch along those lines shortly. > Maybe I'm misunderstanding, but this whole thing seems like a pretty > serious problem for BRIN. :-( With this new approach it shouldn't be. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
В списке pgsql-hackers по дате отправления: