pg_dump shared locks documentation

Started by Florin Irionabout 4 years ago5 messagesdocs
Jump to latest
#1Florin Irion
irionr@gmail.com

Hi,

In the `pg_dump` documentation we talk about "shared locks", but IIUC, we actually take `AccessShareLock`s.
This might be misunderstood with the `ShareLock`.

There are 5 occurrences. 4 in `--jobs=njobs` and 1 in `--lock-wait-timeout=timeout` sections.

Cheers,
Florin Irion

Attachments:

0001-doc-Specify-correctly-the-locks-pg_dump-takes.patchtext/plain; charset=UTF-8; name=0001-doc-Specify-correctly-the-locks-pg_dump-takes.patchDownload+5-6
#2Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Florin Irion (#1)
Re: pg_dump shared locks documentation

On 2022-Mar-15, Florin Irion wrote:

In the `pg_dump` documentation we talk about "shared locks", but IIUC,
we actually take `AccessShareLock`s. This might be misunderstood with
the `ShareLock`.

This might be a bit excessive to have in the main text. What about
adding a footnote to point out the exact lock level that is meant, with
a link to the server doc page that explains each lock level?
Something like this:

Requesting exclusive locks on database objects while running a parallel dump could
cause the dump to fail. The reason is that the <application>pg_dump</application> leader process
-        requests shared locks on the objects that the worker processes are going to dump later
+        requests shared locks<footnote>The precise lock level used is <literal>ACCESS SHARE</literal>.
+        See <xref ... /> for more information.</footnote> on the objects that the worker processes are
going to dump later

...

@@ -870,7 +870,7 @@ PostgreSQL documentation
<term><option>--lock-wait-timeout=<replaceable class="parameter">timeout</replaceable></option></term>
<listitem>
<para>
-        Do not wait forever to acquire shared table locks at the beginning of

Same here.

--
Álvaro Herrera

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alvaro Herrera (#2)
Re: pg_dump shared locks documentation

Alvaro Herrera <alvherre@alvh.no-ip.org> writes:

This might be a bit excessive to have in the main text. What about
adding a footnote to point out the exact lock level that is meant, with
a link to the server doc page that explains each lock level?

I dunno how well <footnote> will render in man-page format.
How about just inserting a parenthetical remark at the first usage?

... leader process requests shared locks (ACCESS SHARE) on the ...

Possibly we could make the "ACCESS SHARE" be a <link> without causing
problems in man format.

regards, tom lane

#4Florin Irion
irionr@gmail.com
In reply to: Tom Lane (#3)
Re: pg_dump shared locks documentation

On 15/03/22 16:55, Tom Lane wrote:

Alvaro Herrera <alvherre@alvh.no-ip.org> writes:

This might be a bit excessive to have in the main text. What about
adding a footnote to point out the exact lock level that is meant, with
a link to the server doc page that explains each lock level?

I dunno how well <footnote> will render in man-page format.
How about just inserting a parenthetical remark at the first usage?

... leader process requests shared locks (ACCESS SHARE) on the ...

Possibly we could make the "ACCESS SHARE" be a <link> without causing
problems in man format.

regards, tom lane

Makes sense.
I tried the footnote and in fact, it doesn't render well in the man page. It just adds a blank line(at least how I tried it).

So, I made the link to ACCESS SHARE, pointing to section 13.3.1. "Table-Level Locks" , was this what you had in mind?

V2 attached.

Thank you for looking into this.
Florin Irion

Attachments:

v2-0001-Specify-correctly-the-locks-pg_dump-takes.patchtext/plain; charset=UTF-8; name=v2-0001-Specify-correctly-the-locks-pg_dump-takes.patchDownload+2-3
#5Nathan Bossart
nathandbossart@gmail.com
In reply to: Florin Irion (#4)
Re: pg_dump shared locks documentation

On Tue, Mar 15, 2022 at 11:21:41PM +0100, Florin Irion wrote:

So, I made the link to ACCESS SHARE, pointing to section 13.3.1. "Table-Level Locks" , was this what you had in mind?

V2 attached.

LGTM. I've marked the commitfest entry as ready-for-committer.

--
Nathan Bossart
Amazon Web Services: https://aws.amazon.com