]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MINOR: stats-file: add process slot management for shm stats file
authorAurelien DARRAGON <adarragon@haproxy.com>
Wed, 27 Aug 2025 14:36:12 +0000 (16:36 +0200)
committerAurelien DARRAGON <adarragon@haproxy.com>
Wed, 3 Sep 2025 13:59:33 +0000 (15:59 +0200)
commitee17d2024528efc7aebce63d97fa7c64e701f83e
treeea9df81d7db3a3fe0df6901f2588b15baba2b4bb
parent443e657fd60768791ef35eff0d669c0a1d399780
MINOR: stats-file: add process slot management for shm stats file

Now that all processes tied to the same shm stats file now share a
common clock source, we introduce the process slot notion in this
patch.

Each living process registers itself in a map at a free index: each slot
stores information about the process' PID and heartbeat. Each process is
responsible for updating its heartbeat, a slot is considered as "free" if
the heartbeat was never set or if the heartbeat is expired (60 seconds of
inactivity). The total number of slots is set to 64, this is on purpose
because it allows to easily store the "users" of a given shm object using
a 64 bits bitmask. Given that when haproxy is reloaded olders processes
are supposed to die eventually, it should be large enough (64 simultaneous
processes) to be safe. If we manage to reach this limit someday, more
slots could be added by splitting "users" bitmask on multiple 64bits
variable.
include/haproxy/stats-file-t.h
src/stats-file.c