Nathan Bossart <nathandboss...@gmail.com> writes: > On Wed, Feb 22, 2023 at 12:40:07PM +0000, wangw.f...@fujitsu.com wrote: >> After some rethinking, I think users can easily get exact value according to >> exact formula, and I think using accurate formula can help users adjust >> max_locks_per_transaction or max_predicate_locks_per_transaction if needed. >> So, >> I used the exact formulas in the attached v2 patch.
> IMHO this is too verbose. Yeah, it's impossibly verbose. Even the current wording does not fit nicely in pg_settings output. > Perhaps it could be simplified to something like > The shared lock table is sized on the assumption that at most > max_locks_per_transaction objects per eligible process or prepared > transaction will need to be locked at any one time. I like the "per eligible process" wording, at least for guc_tables.c; or maybe it could be "per server process"? That would be more accurate and not much longer than what we have now. I've got mixed emotions about trying to put the exact formulas into the SGML docs either. Space isn't such a constraint there, but I think the info would soon go out of date (indeed, I think the existing wording was once exactly accurate), and I'm not sure it's worth trying to maintain it precisely. One reason that I'm not very excited about this is that in fact the formula seen in the source code is not exact either; it's a lower bound for how much space will be available. That's because we throw in 100K slop at the bottom of the shmem sizing calculation, and a large chunk of that remains available to be eaten by the lock table if necessary. regards, tom lane