| From: | Hüseyin Demir <huseyin(dot)d3r(at)gmail(dot)com> |
|---|---|
| To: | Xuneng Zhou <xunengzhou(at)gmail(dot)com> |
| Cc: | Japin Li <japinli(at)hotmail(dot)com>, Zsolt Parragi <zsolt(dot)parragi(at)percona(dot)com>, pgsql-hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: log_checkpoints: count WAL segment creations from all processes |
| Date: | 2026-05-16 17:22:35 |
| Message-ID: | CAB5wL7b6oDvxDjT9R9DsDNKnh=rKzwMcY5+Oi-+ooonXexKhRA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi,
Thanks for the patch. The idea is good and can we introduce a new
counter to pg_stat_checkpointer ? For example, we can add
wal_segments_created to this view and it would be useful for capacity
planning and load estimations.
Additionally I have a few questions
- Should we make walSegsCreatedLastCheckpoint atomic ? In the future
we can also add this to views maybe. It's an auxiliary suggestion.
- ckpt_segs_added is defined as int but overflow threshold is 2^32 in
comments. Shouldn't we use 2^31 for int ?
- Maybe it's a bad idea but should we extend the tests with the
wal_level set to minimal ?
PS: I created a patch to expose wal_segments_created to
pg_stat_checkpointer view. You can review it and enhance your patch if
you need. I created it to explain my idea better so it can be
destroyed after your review. But I couldn't create a patch for
preceding questions.
Regards,
Demir.
Xuneng Zhou <xunengzhou(at)gmail(dot)com>, 25 Mar 2026 Çar, 03:10 tarihinde şunu yazdı:
>
> On Wed, Mar 25, 2026 at 9:11 AM Xuneng Zhou <xunengzhou(at)gmail(dot)com> wrote:
> >
> > Hi Japin,
> >
> > Thanks for looking into this.
> >
> > On Tue, Mar 24, 2026 at 10:01 PM Japin Li <japinli(at)hotmail(dot)com> wrote:
> > >
> > >
> > > Hi, Xuneng
> > >
> > > On Tue, 24 Mar 2026 at 19:17, Xuneng Zhou <xunengzhou(at)gmail(dot)com> wrote:
> > > > Hi Zsolt,
> > > >
> > > > On Tue, Mar 24, 2026 at 1:55 PM Zsolt Parragi <zsolt(dot)parragi(at)percona(dot)com> wrote:
> > > >
> > > > Hello!
> > > >
> > > > This is a simple patch, but shouldn't it include at least some basic
> > > > tests verifying the new behavior?
> > > >
> > > > Thanks for looking into this. I've added a test for it. Please take a look.
> > >
> > > Thanks for updating the patch. A few comments on v2:
> > >
> > > 1.
> > > + (The probes listed next fire in sequence during checkpoint processing.)
> > > + arg0 is the number of buffers written. arg1 is the total number of
> > >
> > > These changes seem unnecessary. Additionally, there appears to be an
> > > indentation issue.
> >
> > Yeah, I've removed these and fixed the indentation issue.
> >
> > > 2.
> > > + current = pg_atomic_read_u64(&XLogCtl->walSegmentsCreated);
> > > + CheckpointStats.ckpt_segs_added = (int)
> > > + (current - XLogCtl->walSegsCreatedLastCheckpoint);
> > > + XLogCtl->walSegsCreatedLastCheckpoint = current;
> > >
> > > Is integer overflow a concern here? It seems unlikely in practice.
> >
> > I don’t think overflow is a concern here, but it might still be
> > helpful to add some comments to mention it.
> >
>
> v4 fixed the inaccurate overflow numbers in comments.
>
> --
> Best,
> Xuneng
| Attachment | Content-Type | Size |
|---|---|---|
| v1-0001-Add-WAL-segment-file-counts-to-pg_stat_checkpointer.patch | application/octet-stream | 8.7 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2026-05-16 17:25:29 | Re: Order of tables dumped by pg_dump |
| Previous Message | Isaac Morland | 2026-05-16 16:59:29 | Re: Order of tables dumped by pg_dump |