Re: Issue with bgworker, SPI and pgstat_report_stat - Mailing list pgsql-hackers

From Robert Haas
Subject Re: Issue with bgworker, SPI and pgstat_report_stat
Date
Msg-id CA+TgmobO1pLrEnrB+=uETqA89DHsKRLiDrisvscJfvXPDnKAYA@mail.gmail.com
Whole thread Raw
In response to Issue with bgworker, SPI and pgstat_report_stat  (Julien Rouhaud <julien.rouhaud@dalibo.com>)
Responses Re: Issue with bgworker, SPI and pgstat_report_stat  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
On Thu, Jul 7, 2016 at 1:52 PM, Julien Rouhaud
<julien.rouhaud@dalibo.com> wrote:
> While investigating on a bloat issue with a colleague, we found that if
> a bgworker executes some queries with SPI, the statistic changes will
> never be reported, since pgstat_report_stat() is only called in regular
> backends.
>
> In our case, the bgworker is the only process inserting and deleting a
> large amount of data on some tables, so the autovacuum never tried to do
> any maintenance on these tables.

Ouch.

> Should a bgworker modifing data have to call pgstat_report_stat() to
> avoid this problem? I don't find any documentation suggesting it, and it
> seems that worker_spi (used as a template for this bgworker and I
> suppose a lot of other one) is also affected.

That certainly seems like the simplest fix.  Not sure if there's a better one.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Reviewing freeze map code
Next
From: Andres Freund
Date:
Subject: Re: Reviewing freeze map code