postgresql/contrib/pg_buffercache
Andres Freund dcf7e1697b Add pg_buffercache_evict_{relation,all} functions
In addition to the added functions, the pg_buffercache_evict() function now
shows whether the buffer was flushed.

pg_buffercache_evict_relation(): Evicts all shared buffers in a
relation at once.
pg_buffercache_evict_all(): Evicts all shared buffers at once.

Both functions provide mechanism to evict multiple shared buffers at
once. They are designed to address the inefficiency of repeatedly calling
pg_buffercache_evict() for each individual buffer, which can be time-consuming
when dealing with large shared buffer pools. (e.g., ~477ms vs. ~2576ms for
16GB of fully populated shared buffers).

These functions are intended for developer testing and debugging
purposes and are available to superusers only.

Minimal tests for the new functions are included. Also, there was no test for
pg_buffercache_evict(), test for this added too.

No new extension version is needed, as it was already increased this release
by ba2a3c2302.

Author: Nazir Bilal Yavuz <byavuz81@gmail.com>
Reviewed-by: Andres Freund <andres@anarazel.de>
Reviewed-by: Aidar Imamov <a.imamov@postgrespro.ru>
Reviewed-by: Joseph Koshakow <koshy44@gmail.com>
Discussion: https://postgr.es/m/CAN55FZ0h_YoSqqutxV6DES1RW8ig6wcA8CR9rJk358YRMxZFmw%40mail.gmail.com
2025-04-08 02:19:32 -04:00
..
expected Add pg_buffercache_evict_{relation,all} functions 2025-04-08 02:19:32 -04:00
sql Add pg_buffercache_evict_{relation,all} functions 2025-04-08 02:19:32 -04:00
.gitignore Add regression test coverage for contrib/pg_buffercache. 2022-07-30 15:33:44 -04:00
Makefile Add pg_buffercache_numa view with NUMA node info 2025-04-07 23:08:17 +02:00
meson.build Add pg_buffercache_numa view with NUMA node info 2025-04-07 23:08:17 +02:00
pg_buffercache--1.0--1.1.sql Add pinning_backends column to the pg_buffercache extension. 2014-08-22 00:28:37 +02:00
pg_buffercache--1.1--1.2.sql Update pg_buffercache extension for parallel query. 2016-06-09 17:18:12 -04:00
pg_buffercache--1.2--1.3.sql Default monitoring roles 2017-03-30 14:18:53 -04:00
pg_buffercache--1.2.sql Update pg_buffercache extension for parallel query. 2016-06-09 17:18:12 -04:00
pg_buffercache--1.3--1.4.sql Add pg_buffercache_usage_counts() to contrib/pg_buffercache. 2023-04-07 14:25:53 -04:00
pg_buffercache--1.4--1.5.sql Add pg_buffercache_evict() function for testing. 2024-04-08 16:23:40 +12:00
pg_buffercache--1.5--1.6.sql Add pg_buffercache_evict_{relation,all} functions 2025-04-08 02:19:32 -04:00
pg_buffercache.control Add pg_buffercache_numa view with NUMA node info 2025-04-07 23:08:17 +02:00
pg_buffercache_pages.c Add pg_buffercache_evict_{relation,all} functions 2025-04-08 02:19:32 -04:00