On Wed, Mar 03, 2021 at 11:23:54AM -0500, Tom Lane wrote: > Georgios <gkokola...@protonmail.com> writes: > > My limited understanding is also based in a comment in > > CreateSharedMemoryAndSemaphores() > > > * Size of the Postgres shared-memory block is estimated via > > * moderately-accurate estimates for the big hogs, plus 100K for the > > * stuff that's too small to bother with estimating. > > Right. That 100K slop factor is capable of hiding a multitude of sins. > > I have not looked at this patch, but I think the concern is basically that > if we have space-estimation infrastructure that misestimates what it is > supposed to estimate, then if that infrastructure is used to estimate the > size of any of the "big hog" data structures, we might misestimate by > enough that the slop factor wouldn't hide it.
Exactly. And now that I looked deeper I can see that multiple estimates are entirely ignoring the padding alignment (e.g. ProcGlobalShmemSize()), which can exceed the 6kB originally estimated by Robert.