pgsql: Fix O(N^2) stat() calls when recycling WAL segments

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix O(N^2) stat() calls when recycling WAL segments
Date: 2021-01-15 01:33:46
Message-ID: E1l0Dzm-0002la-S7@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix O(N^2) stat() calls when recycling WAL segments

The counter tracking the last segment number recycled was getting
initialized when recycling one single segment, while it should be used
across a full cycle of segments recycled to prevent useless checks
related to entries already recycled.

This performance issue has been introduced by b2a5545, and it was first
implemented in 61b86142.

No backpatch is done per the lack of field complaints.

Reported-by: Andres Freund, Thomas Munro
Author: Michael Paquier
Reviewed-By: Andres Freund
Discussion: https://postgr.es/m/20170621211016.eln6cxxp3jrv7m4m@alap3.anarazel.de
Discussion: https://postgr.es/m/CA+hUKG+DRiF9z1_MU4fWq+RfJMxP7zjoptfcmuCFPeO4JM2iVg@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/5ae1572993ae8bf1f6c33a933915c07cc9bc0add

Modified Files
--------------
src/backend/access/transam/xlog.c | 61 ++++++++++++++++++++-------------------
1 file changed, 31 insertions(+), 30 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2021-01-15 02:50:46 Re: pgsql: Ensure that a standby is able to follow a primary on a newer tim
Previous Message Fujii Masao 2021-01-15 01:31:06 pgsql: postgres_fdw: Save foreign server OID in connection cache entry.