Robert Haas <robertmh...@gmail.com> writes: > With the existing system, there is a hard cap on the number of hash > table entries that we can ever need: one per buffer, plus one per > partition to cover the "extra" entries that are needed while changing > buffer tags. With the patch, the number of concurrent buffer tag > changes is no longer limited by NUM_BUFFER_PARTITIONS, because you > release the lock on the old buffer partition before acquiring the lock > on the new partition, and therefore there can be any number of > backends trying to change buffer tags at the same time. But that > means, as the comment implies, that there's no longer a hard cap on > how many hash table entries we might need.
I agree that "just hope it doesn't overflow" is unacceptable. But couldn't you bound the number of extra entries as MaxBackends? FWIW, I have extremely strong doubts about whether this patch is safe at all. This particular problem seems resolvable though. regards, tom lane