pgsql: Cache smgrnblocks() results in recovery. - Mailing list pgsql-committers

From Thomas Munro
Subject pgsql: Cache smgrnblocks() results in recovery.
Date
Msg-id E1k1KsP-0008PC-Ml@gemulon.postgresql.org
Whole thread Raw
List 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(-)


pgsql-committers by date:

Previous
From: Michael Paquier
Date:
Subject: pgsql: Use multi-inserts for pg_attribute and pg_shdepend
Next
From: Michael Paquier
Date:
Subject: pgsql: Fix comment in instrument.h