The initial implementation of autovacuum work-items used a dynamic shared memory area (DSA). However, it's argued that dynamic shared memory is not portable enough, so we cannot rely on it being supported everywhere; at the same time, autovacuum work-items are now a critical part of the server, so it's not acceptable that they don't work in the cases where dynamic shared memory is disabled. Therefore, let's fall back to a simpler implementation of work-items that just uses autovacuum's main shared memory segment for storage.
31ae163 Simplify autovacuum work-item implementation
src/backend/postmaster/autovacuum.c | 318 +++++++-----------------------------
1 file changed, 63 insertions(+), 255 deletions(-)