pgsql: Cache smgrnblocks() results in recovery.

From: Thomas Munro <tmunro(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Cache smgrnblocks() results in recovery.
Date: 2020-07-31 02:34:29
Message-ID: E1k1KsP-0008PC-Ml@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Cache smgrnblocks() results in recovery.

Avoid repeatedly calling lseek(SEEK_END) during recovery by caching
the size of each fork. For now, we can't use the same technique in
other processes, because we lack a shared invalidation mechanism.

Do this by generalizing the pre-existing caching used by FSM and VM
to support all forks.

Discussion: https://postgr.es/m/CAEepm%3D3SSw-Ty1DFcK%3D1rU-K6GSzYzfdD4d%2BZwapdN7dTa6%3DnQ%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/c5315f4f44843c20ada876fdb0d0828795dfbdf5

Modified Files
--------------
contrib/pg_visibility/pg_visibility.c | 2 +-
src/backend/access/heap/visibilitymap.c | 18 +++++-------
src/backend/catalog/storage.c | 4 +--
src/backend/storage/freespace/freespace.c | 27 +++++++++--------
src/backend/storage/smgr/smgr.c | 49 +++++++++++++++++++++++--------
src/include/storage/smgr.h | 12 ++++----
6 files changed, 66 insertions(+), 46 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2020-07-31 05:24:46 pgsql: Fix comment in instrument.h
Previous Message Michael Paquier 2020-07-31 01:55:11 pgsql: Use multi-inserts for pg_attribute and pg_shdepend