|From:||Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>|
|To:||Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>|
|Cc:||Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>|
|Subject:||Re: Re: PANIC: invalid index offnum: 186 when processing BRIN indexes in VACUUM|
|Views:||Raw Message | Whole Thread | Download mbox | Resend email|
Tom Lane wrote:
> Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> writes:
> > 2. when summarization is requested on the partial range at the end of a
> > table, we acquire extension lock on the rel, then compute relation size
> > and run summarization with the lock held. This guarantees that we don't
> > miss any pages. This is bad for concurrency though, so it's only done
> > in that specific scenario.
> Hm, I wonder how this will play with the active proposals around
> reimplementing relation extension locks. All that work seems to be
> assuming that the extension lock is only held for a short time and
> nothing much beyond physical extension is done while holding it.
> I'm afraid that you may be introducing a risk of e.g. deadlocks
> if you do this.
Ouch ... yeah, that could be a problem.
Another idea I had was to just insert the placeholder tuple while
holding the extension lock, then release the lock while the
summarization is done. It would be a bit of a break of the current
separation of concerns, but I'm not convinced that the current setup is
perfect, so maybe that's okay.
> If VACUUM and brin_summarize_new_values both ignore the partial
> range, then what else would request this? Can't we just decree
> that we don't summarize the partial range, period?
brin_summarize_range() can do it.
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
|Next Message||Tom Lane||2017-11-02 19:15:25||Re: VACUUM and ANALYZE disagreeing on what reltuples means|
|Previous Message||Nico Williams||2017-11-02 18:52:39||Re: proposal: schema variables|