RE: Temporary tables prevent autovacuum, leading to XID wraparound
От | Tsunakawa, Takayuki |
---|---|
Тема | RE: Temporary tables prevent autovacuum, leading to XID wraparound |
Дата | |
Msg-id | 0A3221C70F24FB45833433255569204D1FA538FD@G01JPEXMBYT05 обсуждение исходный текст |
Ответ на | Re: Temporary tables prevent autovacuum, leading to XID wraparound (Michael Paquier <michael@paquier.xyz>) |
Ответы |
Re: Temporary tables prevent autovacuum, leading to XID wraparound
|
Список | pgsql-hackers |
From: Michael Paquier [mailto:michael@paquier.xyz] > + /* Does the backend own the temp schema? */ > + if (proc->tempNamespaceId != namespaceID) > + return false; > I have a very hard time believing that this is safe lock-less, and a spin > lock would be enough it seems. The lwlock in BackendIdGetProc() flushes the CPU cache so that proc->tempNamespaceId reflects the latest value. Or, do youmean another spinlock elsewhere? > + /* Is the backend connected to this database? */ > + if (proc->databaseId != MyDatabaseId) > + return false; > Wouldn't it be more interesting to do this cleanup as well if the backend > is *not* connected to the database autovacuum'ed? This would make the > cleanup more aggresive, which is better. IIUC, the above code does what you suggest. proc->databaseId is the database the client is connected to, and MyDatabaseIdis the database being autovacuumed (by this autovacuum worker.) Regards Takayuki Tsunakawa
В списке pgsql-hackers по дате отправления: