Thread
-
Re: Report oldest xmin source when autovacuum cannot remove tuples
Shinya Kato <shinya11.kato@gmail.com> — 2025-11-04T01:29:26Z
On Fri, Oct 31, 2025 at 5:01 PM wenhui qiu <qiuwenhuifx@gmail.com> wrote: > > HI > Thank you for your path ,This path is extremely helpful. Thank you! > > +/* > > + * Identifies what determined a relation's OldestXmin horizon. > > + * Used by autovacuum to report why dead tuples were not removable. > > + */ > > +typedef enum OldestXminSource > > +{ > > + OLDESTXMIN_SOURCE_ACTIVE_TRANSACTION, > > + OLDESTXMIN_SOURCE_HOT_STANDBY_FEEDBACK, > > + OLDESTXMIN_SOURCE_PREPARED_TRANSACTION, > > + OLDESTXMIN_SOURCE_REPLICATION_SLOT, > > + OLDESTXMIN_SOURCE_OTHER > > +} OldestXminSource; > > + > > +typedef struct OldestXminInfo > > +{ > > + OldestXminSource source; > > + int backend_pid; > > +} OldestXminInfo; > I have a question for like this > one session > begin; > select * from table_a > not commit or not closed session > It is in OLDESTXMIN_SOURCE_ACTIVE_TRANSACTION type ? Exactly. Looking at 010_autovacuum_oldest_xmin_reason.pl should make it clear which logs are output in which cases. (I just noticed there seems to be a case where the test fails. I need to fix that.) -- Best regards, Shinya Kato NTT OSS Center