From: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
---|---|
To: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Fix lag columns in pg_stat_replication not advancing when replay LSN stalls |
Date: | 2025-10-20 01:20:41 |
Message-ID: | CAHGQGwGW9iz-0mZvMk8PU6YARytytmiAuhi_498k9vfVEJhLJQ@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Oct 20, 2025 at 10:12 AM Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
>
> On Sat, Oct 18, 2025 at 9:16 AM Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> wrote:
> > I think I put all concentration on the big picture yesterday, so I ignored this implementation detail:
> >
> > ```
> > + if (lag_tracker->overflowed[head].lsn > lsn)
> > + return now - lag_tracker->overflowed[head].time;
> > ```
> >
> > Should this “>” be “>=“?
>
> I think either ">" or ">=" would work. However, the following loop
> in LagTrackerRead() advances the read head when the LSN
> in the current buffer entry is equal to the given LSN
I forgot to mention which loop actually advances the read head in that case.
It's the following code in LagTrackerRead().
------------------------
/* Read all unread samples up to this LSN or end of buffer. */
while (lag_tracker->read_heads[head] != lag_tracker->write_head &&
lag_tracker->buffer[lag_tracker->read_heads[head]].lsn <= lsn)
{
time = lag_tracker->buffer[lag_tracker->read_heads[head]].time;
lag_tracker->last_read[head] =
lag_tracker->buffer[lag_tracker->read_heads[head]];
lag_tracker->read_heads[head] =
(lag_tracker->read_heads[head] + 1) % LAG_TRACKER_BUFFER_SIZE;
}
------------------------
Regards,
--
Fujii Masao
From | Date | Subject | |
---|---|---|---|
Next Message | Bryan Green | 2025-10-20 01:34:02 | Re: [PATCH] Fix POSIX compliance in pgwin32_unsetenv() |
Previous Message | Fujii Masao | 2025-10-20 01:17:21 | Re: Fix lag columns in pg_stat_replication not advancing when replay LSN stalls |