Re: Fix the description of GUC "max_locks_per_transaction" and "max_pred_locks_per_transaction" in guc_table.c

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Nathan Bossart <nathandbossart(at)gmail(dot)com>
Cc: "wangw(dot)fnst(at)fujitsu(dot)com" <wangw(dot)fnst(at)fujitsu(dot)com>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Fix the description of GUC "max_locks_per_transaction" and "max_pred_locks_per_transaction" in guc_table.c
Date: 2023-04-04 15:47:31
Message-ID: 1515917.1680623251@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Nathan Bossart <nathandbossart(at)gmail(dot)com> writes:
> On Wed, Feb 22, 2023 at 12:40:07PM +0000, wangw(dot)fnst(at)fujitsu(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2023-04-04 16:03:45 differential code coverage
Previous Message Gregory Stark (as CFM) 2023-04-04 15:45:56 Re: logical decoding and replication of sequences, take 2