Re: vacuumdb parallel has a deadlock detected in 9.5.4

Поиск
Список
Период
Сортировка
От Francisco Olarte
Тема Re: vacuumdb parallel has a deadlock detected in 9.5.4
Дата
Msg-id CA+bJJbx8+SKBU=XUE+HxZHysh9226iMfTnA69AznwRTOEGtR7Q@mail.gmail.com
обсуждение исходный текст
Ответ на Re: vacuumdb parallel has a deadlock detected in 9.5.4  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Ответы Re: vacuumdb parallel has a deadlock detected in 9.5.4
Re: vacuumdb parallel has a deadlock detected in 9.5.4
Список pgsql-bugs
Hi:

On Wed, Sep 28, 2016 at 10:39 PM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:
>> > There is a error deadlock detected in vacuumdb parallel .
>> > but if I do not use parallel , it has not deadlock detected .
>> man vacuumdb says about -j option:
>>
>> >> Note that using this mode together with the -f (FULL) option might cause
>> >> deadlock failures if certain system catalogs are processed in parallel.
>> so, while I understand it's not pretty, it's well documented.
>
> Yeah.  However I think this behavior is rather unhelpful.  Maybe we
> should try to fix it somehow, but I'm not sure how.  We could say that
> pg_catalog tables can only be processed one at a time, instead of trying
> to paralelize them?  For example: have vacuumdb fill two lists of
> tables, one for pg_catalog and one for tables in other schemas.  Each
> worker chooses a table from the pg_catalog list first if it's not empty
> and there's no other worker doing one of these, otherwise one from the
> other table.
>
> I think that'd fix it, while not destroying paralelizability too badly.

I would propose another behaviour, which I think can solve the problem
without introducing more complex code. Put a couple of flags to vacuum
only catalog tables / non catalog tables ( I believe this can be
served by include/exclude schemas too, which will be even more useful
for other things ). This way one can do a full paralell vacuum of
non-catalog objects followed by a serial one on catalog objects (
which should not be too slow on 'normal' databases ) ( I propose this
order because IIRC normal vacuum updates catalog tables so they get
vacuumed after to tidy them )

Francisco Olarte

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: BUG #14243: pg_basebackup failes by a STATUS_DELETE_PENDING file
Следующее
От: David Rowley
Дата:
Сообщение: Re: BUG #14344: string_agg(DISTINCT ..) crash