Re: New docs chapter on Transaction Management and related changes - Mailing list pgsql-hackers

From Simon Riggs
Subject Re: New docs chapter on Transaction Management and related changes
Date
Msg-id CANbhV-E287+hqhEbC7vCShT16LKYM8aUhrvxQZdjX2osKAETkQ@mail.gmail.com
Whole thread Raw
In response to Re: New docs chapter on Transaction Management and related changes  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Responses Re: New docs chapter on Transaction Management and related changes
List pgsql-hackers
On Fri, 14 Oct 2022 at 09:46, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
>
> +1 for this new chapter.  This latest patch looks pretty good.  I think
> that introducing the concept of "sub-commit" as in Simon's follow-up
> patch clarifies things, though the word itself looks very odd.  Maybe
> it's okay.  The addition of the savepoint example looks good also.
>
> On 2022-Oct-13, Bruce Momjian wrote:
>
> > +  <para>
> > +   <productname>PostgreSQL</productname> supports a two-phase commit (2PC)
> > +   protocol that allows multiple distributed systems to work together
> > +   in a transactional manner.  The commands are <command>PREPARE
> > +   TRANSACTION</command>, <command>COMMIT PREPARED</command> and
>
> I suggest/request that we try to avoid breaking tagged constants in
> DocBook; doing so makes it much easier to miss them later when grepping
> for them (don't laugh, it has happened to me).  Also, it breaks
> formatting in some weird cases.  I know this makes editing a bit harder
> because you can't just reflow with your editor like you would normal
> text.  So this'd be:
>
> +   in a transactional manner.  The commands are <command>PREPARE TRANSACTION</command>,
> +   <command>COMMIT PREPARED</command> and
>
> with whatever word wrapping you like, except breaking between PREPARE
> and TRANSACTION.
>
> > +   <para>
> > +    In addition to <literal>vxid</literal> and <type>xid</type>,
> > +    when a transaction is prepared it is also identified by a Global
> > +    Transaction Identifier (<acronym>GID</acronym>). GIDs
> > +    are string literals up to 200 bytes long, which must be
> > +    unique amongst other currently prepared transactions.
> > +    The mapping of GID to xid is shown in <link
> > +    linkend="view-pg-prepared-xacts"><structname>pg_prepared_xacts</structname></link>.
> > +   </para>
>
> Maybe say "is prepared for two-phase commit", to make the topic of this
> paragraph more obvious?
>
> > +   <para>
> > +    Lock waits on table-level locks are shown waiting for
> > +    <structfield>virtualxid</structfield>, while lock waits on row-level
> > +    locks are shown waiting for <structfield>transactionid</structfield>.
> > +    Row-level read and write locks are recorded directly in locked
> > +    rows and can be inspected using the <xref linkend="pgrowlocks"/>
> > +    extension.  Row-level read locks might also require the assignment
> > +    of multixact IDs (<literal>mxid</literal>). Mxids are recorded in
> > +    the <filename>pg_multixact</filename> directory.
> > +   </para>
>
> Hmm, ok.
>
> > +   <para>
> > +    The parent xid of each subxid is recorded in the
> > +    <filename>pg_subtrans</filename> directory. No entry is made for
> > +    top-level xids since they do not have a parent, nor is an entry made
> > +    for read-only subtransactions.
> > +   </para>
>
> Maybe say "the immediate parent xid of each ...", or is it too obvious?

+1 to all of those suggestions

-- 
Simon Riggs                http://www.EnterpriseDB.com/



pgsql-hackers by date:

Previous
From: Richard Guo
Date:
Subject: Re: Fix error message for MERGE foreign tables
Next
From: Simon Riggs
Date:
Subject: Re: New docs chapter on Transaction Management and related changes