Re: Skipping logical replication transactions on subscriber side
От | Amit Kapila |
---|---|
Тема | Re: Skipping logical replication transactions on subscriber side |
Дата | |
Msg-id | CAA4eK1LXyq2EtEva=gEqTREcYHAbujsE9aYDi-aUXT-w5bPgLw@mail.gmail.com обсуждение исходный текст |
Ответ на | RE: Skipping logical replication transactions on subscriber side ("osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>) |
Ответы |
RE: Skipping logical replication transactions on subscriber side
|
Список | pgsql-hackers |
On Tue, Mar 15, 2022 at 7:30 PM osumi.takamichi@fujitsu.com <osumi.takamichi@fujitsu.com> wrote: > > On Tuesday, March 15, 2022 3:13 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > I've attached an updated version patch. > > A couple of minor comments on v14. > > (1) apply_handle_commit_internal > > > + if (is_skipping_changes()) > + { > + stop_skipping_changes(); > + > + /* > + * Start a new transaction to clear the subskipxid, if not started > + * yet. The transaction is committed below. > + */ > + if (!IsTransactionState()) > + StartTransactionCommand(); > + } > + > > I suppose we can move this condition check and stop_skipping_changes() call > to the inside of the block we enter when IsTransactionState() returns true. > > As the comment of apply_handle_commit_internal() mentions, > it's the helper function for apply_handle_commit() and > apply_handle_stream_commit(). > > Then, I couldn't think that both callers don't open > a transaction before the call of apply_handle_commit_internal(). > For applying spooled messages, we call begin_replication_step as well. > > I can miss something, but timing when we receive COMMIT message > without opening a transaction, would be the case of empty transactions > where the subscription (and its subscription worker) is not interested. > I think when we skip non-streamed transactions we don't start a transaction. So, if we do what you are suggesting, we will miss to clear the skip_lsn after skipping the transaction. -- With Regards, Amit Kapila.
В списке pgsql-hackers по дате отправления: