Optimize check for pending backend IO stats

Michael Paquier <michael@paquier.xyz>

Commit: 6d3ea48ff1aea5fb1ccfed69424bf93a8643b4a4
Author: Michael Paquier <michael@paquier.xyz>
Date: 2025-03-18T23:03:06Z
Releases: 18.0
Optimize check for pending backend IO stats

This commit changes the backend stats code so as we rely on a single
boolean rather than a repeated check based on pg_memory_is_all_zeros()
in the code, making it cheaper should PgStat_PendingIO get bigger in
size.

The frequency of backend stats reports is not a bottleneck, but there is
no reason to not make that cheaper, and the logic is simple as the only
entry points updating backend IO stats are pgstat_count_backend_io_op()
and pgstat_count_backend_io_op_time().

Author: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Reviewed-by: Xuneng Zhou <xunengzhou@gmail.com>
Discussion: https://postgr.es/m/Z8WYf1jyy4MwOveQ@ip-10-97-1-34.eu-west-3.compute.internal

Files

PathChange+/−
src/backend/utils/activity/pgstat_backend.c modified +11 −8

Discussion