Re: pg_subtrans keeps bloating up in the standby
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Fujii Masao <masao.fujii@gmail.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>, "Kolb, Harald (NSN - DE/Munich)" <harald.kolb@nsn.com>
Date: 2010-08-27T14:25:58Z
Lists: pgsql-hackers
On 27/08/10 16:39, Fujii Masao wrote: > I received the off-list email reporting that pg_subtrans keeps bloating up > in the standby, from Harald (Thanks!). I investigated this issue and found > that the standby doesn't truncate pg_subtrans at all even though HS keeps > extending it. In the master, a checkpoint calls TruncateSUBTRANS() and > truncate old pg_subtrans entries, but in the standby, a restartpoint doesn't > do that. And I found the following comment in CreateRestartPoint(): > > /* > * Currently, there is no need to truncate pg_subtrans during recovery. If > * we did do that, we will need to have called StartupSUBTRANS() already > * and then TruncateSUBTRANS() would go here. > */ > > I'm not sure why there is no need to truncate pg_subtrans during recovery. > To fix the issue, we should make a restartpoint call TruncateSUBTRANS(). > Thought? Hmm, agreed, seems like an oversight in hot standby. Before that, we didn't update pg_subtrans during recovery, so there was no point truncating it. But in hot standby, we do update it, so we need to truncate it too. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com