Re: Control flow in logical replication walsender
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Cc: Christophe Pettus <xof@thebuild.com>, pgsql-hackers@postgresql.org
Date: 2024-05-07T12:16:31Z
Lists: pgsql-hackers
On Tue, May 7, 2024 at 9:51 AM Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> wrote: > > On Tue, May 7, 2024 at 12:00 AM Christophe Pettus <xof@thebuild.com> wrote: >> >> Thank you for the reply! >> >> > On May 1, 2024, at 02:18, Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> wrote: >> > Is there a large transaction which is failing to be replicated repeatedly - timeouts, crashes on upstream or downstream? >> >> AFAIK, no, although I am doing this somewhat by remote control (I don't have direct access to the failing system). This did bring up one other question, though: >> >> Are subtransactions written to their own individual reorder buffers (and thus potentially spill files), or are they appended to the topmost transaction's reorder buffer? > > > IIRC, they have their own RB, > Right. > but once they commit, they are transferred to topmost transaction's RB. > I don't think they are transferred to topmost transaction's RB. We perform a k-way merge between transactions/subtransactions to retrieve the changes. See comments: "Support for efficiently iterating over a transaction's and its subtransactions' changes..." in reorderbuffer.c -- With Regards, Amit Kapila.