Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w4x7l-002jgw-1b for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Mar 2026 08:28:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w4x7j-005Mdp-1M for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Mar 2026 08:28:27 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w4x7j-005Mdf-02 for pgsql-hackers@lists.postgresql.org; Tue, 24 Mar 2026 08:28:27 +0000 Received: from mail-yx1-xb134.google.com ([2607:f8b0:4864:20::b134]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w4x7h-00000000lHD-2gLV for pgsql-hackers@postgresql.org; Tue, 24 Mar 2026 08:28:26 +0000 Received: by mail-yx1-xb134.google.com with SMTP id 956f58d0204a3-64937edbc9eso3417163d50.2 for ; Tue, 24 Mar 2026 01:28:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774340905; cv=none; d=google.com; s=arc-20240605; b=k9XdhFSDCZ26SFXJ+Q7VEE61aTaYUdJByTiYnkfltecj9i8ys+j08Q1+QrBzLXgHIT VKPKc/ekLXtes10+yGaG2Qhh4BJ+XYva+XSTnGUvoKAjYuGS/jUKSbYFJYG/5WAsuOo1 dd5PUqmsDtM6ARt7i0WEUR5HDKZjlfZ44UCUDovMg/o/33NhcVG8ACcPyRNkBniZ0s9w LQLF4niwl2KwYzz7A3zPqlN3fKB39FyFJgBumBEROaxyh9UQIQejDqXonbfj+oSpTeyd ryHaCzQEwBdy+tBFs1oPP94MM+IKRiVDVnYBLhHV4+SDrKyMjafrnOLdueN09743V/bX EF7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=XXaP8wRyF79ffpMhbGklv2tD/yd8fZAJk2nmMgEdh1o=; fh=Qg+VoSTf9Gqob53jYegCTGbY2o/M0q3uCTku6b+gu1Q=; b=lZ83kTUGOx8Z+5a/R+4h9JyYAXAnhKSvPdvOijek/ysVU3cPfqztQgwRAdzTLV75L6 xkrkia36lCG2PwcfJQp3uD+qQmSSlqLYxXQ0F2X+Bqi/pYCZwQgHgtycd8Baxnt5Qxq4 G3hj35nxEsGfGGK9GRc89jMNSmP79JSk+r/ZQAq0i1Zk7c8b2mC7dznmMTyNY7HjyzAr 4VATuRtWqMOES4eYo2jXtnJfWlpvokSmLnc+AZ4DjATGuLccFePcKiLfCtIkBl7M/+Vl 8bDi7YbFFYZVLc5uxQiTKF5B0UEaIgHn7T7tU5Lnlps3XBZyPAtIAW2PRBiewcfCq0n2 VbYg==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774340905; x=1774945705; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=XXaP8wRyF79ffpMhbGklv2tD/yd8fZAJk2nmMgEdh1o=; b=i9VIs+uBxUgQMJoaQdrpeqwTYab92hhA1UORp5HtdywWzInEIlsbicGzQH8WBdGuhc Yf9YwbC8CdvQTmFAcoiDtO0axveUfieMhz+YhUSRi+hA3m6YQCU7SriBUz2MS99qqt2v D+GRdGCVmGujxzgcI14g9+fCrGl9X/G8Bag8rMKYvww/Y1rFv6Y1FbEp9pkGidtkeYtD TzuZssfb5teeN093kQTAecyJ8Qd+6v7dxqr90iMkzH6oLSk1a5w1+M24FEaFdimpm7mn j172X8G1yyFk00hP/jiL31nzHJVkdafdBDP1CPlDZs5I/ZM90RmMONzHSPVAj1JqSP9P GDzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774340905; x=1774945705; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=XXaP8wRyF79ffpMhbGklv2tD/yd8fZAJk2nmMgEdh1o=; b=HFt3De3oZMidg49dsuNlhzb7yoKjNp+JDyEJGjOxrGcMxyQEHuvDjPvVWWRk6v9ZBB bYGavmjsoxKuLwRFEdk6qNjJeqU2d5x0RpCcFvwyOEUJHdRLs558kjv7OIwLcjW+oljm n5jrCXED5dEW4Bcttun7aB38khSvvd2n3CaXcrHjDXsQY22aZMOPhB9dVNi+O/RvXTct cSFtcz7nIbtFOJIwTY4UlAQSkh9gmQQcfJ6i7UZY4EkeaSPZcSucuOSrl7iq39IaY15E L8VbkOemF8dvbaXoaMjqnF5nYEBPsWZY++jKFKHWfmEIIE12BGQiIdfgLfP5q3Hx9euG iGWw== X-Forwarded-Encrypted: i=1; AJvYcCVADc9bfHgF09vG+WCG8/f8QOMZLBPctHWFR2I0PBEj4RJWvZaULsMNQfSE+oXaSCwdxxwiYy4fhX45USiz@postgresql.org X-Gm-Message-State: AOJu0YxU0H6zHubwlEepTsg5+l6e/BwvXM4ROK1QicDd++B00bQayvgf E0Xc0Sw1zf52+dvtikCaKCsVpqKbPve2lZP34aTli0G/157WD8DzEB9DDGjH00GNSePbOVZLoxm eehMqojZOCrnScXtYisWbUmTX/v7UC9Q= X-Gm-Gg: ATEYQzwFtBJS9AMV038hMTBAUkJBPQKBnci8rpeqCU05inHAEwU/dIkbdhblFfWNGUA 9BlzxlzpU3pHHt08gnxJGZkq5/UsgV75/4gwD54A/f+okXF2v+2skE0U19tbsOzDd6kkmtkrCbs zyrNHP3V3eksnK7J8XhuCRo3UhCxBpSFKn+iGHXSVJa5vyQ0+N16SJbEZO9s4puKj/kBF9NFeSq NMhLWhXUw8cC+hTa1VAetLvwmtX3TcqLGvfsmrs3kyAoac7DLU3EWwVxkHhR8GborhHZ7ZxhP5A kiEEAzvsrkoU9Bt+yw== X-Received: by 2002:a05:690c:22c5:b0:794:ffc8:659 with SMTP id 00721157ae682-79a90ac0f71mr166560917b3.12.1774340904809; Tue, 24 Mar 2026 01:28:24 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Lakshmi N Date: Tue, 24 Mar 2026 01:28:13 -0700 X-Gm-Features: AaiRm512qJcDmsPyfAkTtQDcXp7IgFu9Svg_QxHYqTwSRZrRTdTeKG4ciiNefys Message-ID: Subject: Re: log XLogPrefetch stats at end of recovery To: Jakub Wartak Cc: Bharath Rupireddy , SATYANARAYANA NARLAPURAM , pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="00000000000057c760064dc0efd5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000057c760064dc0efd5 Content-Type: multipart/alternative; boundary="00000000000057c75d064dc0efd3" --00000000000057c75d064dc0efd3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi all, Thank you for your feedback. Please see the attached patch. On Mon, Mar 23, 2026 at 4:30=E2=80=AFAM Jakub Wartak wrote: > On Sun, Mar 22, 2026 at 1:43=E2=80=AFAM Bharath Rupireddy > wrote: > > Hi, > > > On Sat, Mar 21, 2026 at 1:16=E2=80=AFAM SATYANARAYANA NARLAPURAM > > wrote: > > > > > > > While investigating a long recovery, I noticed that XLogPrefetch > stats were not logged at the end of recovery. This log message will be > useful to understand how effective XLogPrefetch was during recovery. Addi= ng > a patch to address this. > > > > > > Applied this patch and validated the log message. This log message > appears to be useful to me, particularly while doing fleet wide analysis. > > > > > > 2026-03-20 23:33:13.756 PDT [2265441] LOG: XLogPrefetcher stats: > prefetch=3D14, hit=3D6, skip_init=3D5, skip_new=3D28, skip_fpw=3D18, skip= _rep=3D996 > > > > This looks useful to understand how the prefetch helped during long > recoveries. > > > > > I am wondering if we can periodically log this in standby mode as > well, not just before promoting? > > > > Timer-based startup progress messaging allows logging such things > > (ereport_startup_progress API). There was an attempt to enable "redo > > in progress" for standbys, but that seemed to flood the standby logs > > even at the default progress interval of 10 sec. > > > > Having said that, the prefetcher stats could be added to the existing > > ereport_startup_progress("redo in progress xxx") message that works > > for crash recoveries=E2=80=94however, I don't prefer doing a bunch of a= tomic > > reads every progress interval of 10 sec. > > > Therefore, logging at the end of recovery looks good to me. > > +1 from me too to only of logging at the end of recovery (so -1 to loggin= g > every now and then). If someone is interested in current state (or progre= ss > over time) I think he can query pg_stat_recovery_prefetch view already, > even > today, right? > I reviewed the patch. I have the following comment: > > > > + elog(LOG, "XLogPrefetcher stats: prefetch=3D%lu, hit=3D%lu, > > skip_init=3D%lu, skip_new=3D%lu, skip_fpw=3D%lu, skip_rep=3D%lu", > > > > XLogPrefetcher is an internal data structure name, how about "redo > > prefetch stats: xxxx" to be consistent with other redo log messages? > > +1 > please find the attached patch addressing this. Regards, Lakshmi --00000000000057c75d064dc0efd3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi all,

Thank you for your f= eedback. Please see the attached patch.

On Mon, Mar 23= , 2026 at 4:30=E2=80=AFAM Jakub Wartak <jakub.wartak@enterprisedb.com> wrote:
On Sun, Mar 22, 2026 at 1:43= =E2=80=AFAM Bharath Rupireddy
<bharath.rupireddyforpostgres@gmail.com> wrote:

Hi,

> On Sat, Mar 21, 2026 at 1:16=E2=80=AFAM SATYANARAYANA NARLAPURAM
> <sat= yanarlapuram@gmail.com> wrote:
> >
> > > While investigating a long recovery, I noticed that XLogPref= etch stats were not logged at the end of recovery. This log message will be= useful to understand how effective XLogPrefetch was during recovery. Addin= g a patch to address this.
> >
> > Applied this patch and validated the log message. This log messag= e appears to be useful to me, particularly while doing fleet wide analysis.=
> >
> > 2026-03-20 23:33:13.756 PDT [2265441] LOG:=C2=A0 XLogPrefetcher s= tats: prefetch=3D14, hit=3D6, skip_init=3D5, skip_new=3D28, skip_fpw=3D18, = skip_rep=3D996
>
> This looks useful to understand how the prefetch helped during long re= coveries.
>
> > I am wondering if we can periodically log this in standby mode as= well, not just before promoting?
>
> Timer-based startup progress messaging allows logging such things
> (ereport_startup_progress API). There was an attempt to enable "r= edo
> in progress" for standbys, but that seemed to flood the standby l= ogs
> even at the default progress interval of 10 sec.
>
> Having said that, the prefetcher stats could be added to the existing<= br> > ereport_startup_progress("redo in progress xxx") message tha= t works
> for crash recoveries=E2=80=94however, I don't prefer doing a bunch= of atomic
> reads every progress interval of 10 sec.

> Therefore, logging at the end of recovery looks good to me.

+1 from me too to only of logging at the end of recovery (so -1 to logging<= br> every now and then). If someone is interested in current state (or progress=
over time) I think he can query pg_stat_recovery_prefetch view already, eve= n
today, right?=C2=A0
> I reviewed the patch. I have the following comment:
>
> + elog(LOG, "XLogPrefetcher stats: prefetch=3D%lu, hit=3D%lu,
> skip_init=3D%lu, skip_new=3D%lu, skip_fpw=3D%lu, skip_rep=3D%lu",=
>
> XLogPrefetcher is an internal data structure name, how about "red= o
> prefetch stats: xxxx" to be consistent with other redo log messag= es?

+1

please find the attached patch addre= ssing this.=C2=A0

Regards,
Lakshmi
=
--00000000000057c75d064dc0efd3-- --00000000000057c760064dc0efd5 Content-Type: application/octet-stream; name="0001-log-prefetch-stats-at-end-of-recovery.patch" Content-Disposition: attachment; filename="0001-log-prefetch-stats-at-end-of-recovery.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn4cpwyv0 RnJvbSBhZGM0MDE5MWZiMzliZWEzYWU0ZDAyZDU1NzNmNTAxNDQ4NDRlOTRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYWtzaG1pIE4gPGxha3NobWluLmpoc0BnbWFpbC5jb20+CkRh dGU6IFR1ZSwgMjQgTWFyIDIwMjYgMDE6MjM6MjQgLTA3MDAKU3ViamVjdDogW1BBVENIXSB4bG9n cHJlZmV0Y2hlcjogbG9nIHByZWZldGNoIHN0YXRpc3RpY3MgYXQgZW5kIG9mIHJlY292ZXJ5CgpB ZGQgWExvZ1ByZWZldGNoTG9nU3RhdHMoKSwgd2hpY2ggZW1pdHMgYSBMT0cgbWVzc2FnZSBzdW1t YXJpc2luZyB0aGUKcHJlZmV0Y2ggY291bnRlcnMgKHByZWZldGNoLCBoaXQsIHNraXBfaW5pdCwg c2tpcF9uZXcsIHNraXBfZnB3LApza2lwX3JlcCkgYWNjdW11bGF0ZWQgZHVyaW5nIHJlY292ZXJ5 LiBUaGUgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20KUGVyZm9ybVdhbFJlY292ZXJ5KCkgaW1tZWRp YXRlbHkgYWZ0ZXIgdGhlICJyZWRvIGRvbmUiIG1lc3NhZ2UsIGdpdmluZwpvcGVyYXRvcnMgdmlz aWJpbGl0eSBpbnRvIGhvdyBlZmZlY3RpdmUgV0FMIHByZWZldGNoaW5nIHdhcyBvdmVyIHRoZQpj b3Vyc2Ugb2YgdGhlIHJlY292ZXJ5IHNlc3Npb24uCgpOby1vcCB3aGVuIHJlY292ZXJ5X3ByZWZl dGNoID0gb2ZmLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dwcmVmZXRjaGVy LmMgfCAxOSArKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9ncmVjb3ZlcnkuYyAgIHwgIDIgKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy94bG9ncHJlZmV0Y2hl ci5oICAgICAgICAgfCAgMiArKwogMyBmaWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3ByZWZldGNoZXIuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dwcmVmZXRjaGVyLmMKaW5kZXggYzIzNWVj YTdjNTEuLjQ5YWNiMzZhZjFjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS94bG9ncHJlZmV0Y2hlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dw cmVmZXRjaGVyLmMKQEAgLTMzNSw2ICszMzUsMjUgQEAgWExvZ1ByZWZldGNoU2htZW1Jbml0KHZv aWQpCiAJfQogfQogCisvKgorICogTG9nIGEgc3VtbWFyeSBvZiB0aGUgWExvZ1ByZWZldGNoZXIg c3RhdHMuIEludGVuZGVkIHRvIGJlIGNhbGxlZCAKKyAqIGF0IHRoZSBlbmQgb2YgcmVjb3Zlcnkg b3Igd2hlbiBhIHN0YW5kYnkgaXMgcHJvbW90ZWQuCisgKi8KK3ZvaWQKK1hMb2dQcmVmZXRjaExv Z1N0YXRzKHZvaWQpCit7CisJaWYgKHJlY292ZXJ5X3ByZWZldGNoID09IFJFQ09WRVJZX1BSRUZF VENIX09GRikKKwkJcmV0dXJuOworCisJZWxvZyhMT0csICJyZWRvIHByZWZldGNoIHN0YXRzOiBw cmVmZXRjaD0lbHUsIGhpdD0lbHUsIHNraXBfaW5pdD0lbHUsIHNraXBfbmV3PSVsdSwgc2tpcF9m cHc9JWx1LCBza2lwX3JlcD0lbHUiLAorCQkgcGdfYXRvbWljX3JlYWRfdTY0KCZTaGFyZWRTdGF0 cy0+cHJlZmV0Y2gpLAorCQkgcGdfYXRvbWljX3JlYWRfdTY0KCZTaGFyZWRTdGF0cy0+aGl0KSwK KwkJIHBnX2F0b21pY19yZWFkX3U2NCgmU2hhcmVkU3RhdHMtPnNraXBfaW5pdCksCisJCSBwZ19h dG9taWNfcmVhZF91NjQoJlNoYXJlZFN0YXRzLT5za2lwX25ldyksCisJCSBwZ19hdG9taWNfcmVh ZF91NjQoJlNoYXJlZFN0YXRzLT5za2lwX2ZwdyksCisJCSBwZ19hdG9taWNfcmVhZF91NjQoJlNo YXJlZFN0YXRzLT5za2lwX3JlcCkpOworfQorCiAvKgogICogQ2FsbGVkIHdoZW4gYW55IEdVQyBp cyBjaGFuZ2VkIHRoYXQgYWZmZWN0cyBwcmVmZXRjaGluZy4KICAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYwppbmRleCA2ZDJjNGE4NmI5Ni4uNzQyY2I5MGRhOWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCkBAIC0xODQ1LDYg KzE4NDUsOCBAQCBQZXJmb3JtV2FsUmVjb3Zlcnkodm9pZCkKIAkJCQllcnJtc2coInJlZG8gZG9u ZSBhdCAlWC8lMDhYIHN5c3RlbSB1c2FnZTogJXMiLAogCQkJCQkgICBMU05fRk9STUFUX0FSR1Mo eGxvZ3JlYWRlci0+UmVhZFJlY1B0ciksCiAJCQkJCSAgIHBnX3J1c2FnZV9zaG93KCZydTApKSk7 CisJCQorCQlYTG9nUHJlZmV0Y2hMb2dTdGF0cygpOwogCQl4dGltZSA9IEdldExhdGVzdFhUaW1l KCk7CiAJCWlmICh4dGltZSkKIAkJCWVyZXBvcnQoTE9HLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvYWNjZXNzL3hsb2dwcmVmZXRjaGVyLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ3ByZWZl dGNoZXIuaAppbmRleCA3ZWM0MGM0Yjc4Yi4uYTg2MjkyNGM4OTUgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2FjY2Vzcy94bG9ncHJlZmV0Y2hlci5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94 bG9ncHJlZmV0Y2hlci5oCkBAIC0zNyw2ICszNyw3IEBAIGV4dGVybiB2b2lkIFhMb2dQcmVmZXRj aFJlY29uZmlndXJlKHZvaWQpOwogZXh0ZXJuIHNpemVfdCBYTG9nUHJlZmV0Y2hTaG1lbVNpemUo dm9pZCk7CiBleHRlcm4gdm9pZCBYTG9nUHJlZmV0Y2hTaG1lbUluaXQodm9pZCk7CiAKK2V4dGVy biB2b2lkIFhMb2dQcmVmZXRjaExvZ1N0YXRzKHZvaWQpOwogZXh0ZXJuIHZvaWQgWExvZ1ByZWZl dGNoUmVzZXRTdGF0cyh2b2lkKTsKIAogZXh0ZXJuIFhMb2dQcmVmZXRjaGVyICpYTG9nUHJlZmV0 Y2hlckFsbG9jYXRlKFhMb2dSZWFkZXJTdGF0ZSAqcmVhZGVyKTsKQEAgLTUyLDQgKzUzLDUgQEAg ZXh0ZXJuIFhMb2dSZWNvcmQgKlhMb2dQcmVmZXRjaGVyUmVhZFJlY29yZChYTG9nUHJlZmV0Y2hl ciAqcHJlZmV0Y2hlciwKIAogZXh0ZXJuIHZvaWQgWExvZ1ByZWZldGNoZXJDb21wdXRlU3RhdHMo WExvZ1ByZWZldGNoZXIgKnByZWZldGNoZXIpOwogCisKICNlbmRpZgotLSAKMi40My4wCgo= --00000000000057c760064dc0efd5--