From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
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 |
Date: | 2017-11-02 17:56:10 |
Message-ID: | 6563.1509645370@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> writes:
> 1. in VACUUM or brin_summarize_new_values, we only process fully loaded
> ranges, and ignore the partial range at end of table.
OK.
> 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.
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?
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Geoghegan | 2017-11-02 18:14:01 | Re: MERGE SQL Statement for PG11 |
Previous Message | Alvaro Herrera | 2017-11-02 17:45:42 | Re: Re: PANIC: invalid index offnum: 186 when processing BRIN indexes in VACUUM |