Re: Time delayed LR (WAS Re: logical replication restrictions)
| От | Kyotaro Horiguchi |
|---|---|
| Тема | Re: Time delayed LR (WAS Re: logical replication restrictions) |
| Дата | |
| Msg-id | 20230207.134303.240673860646903773.horikyota.ntt@gmail.com обсуждение исходный текст |
| Ответ на | RE: Time delayed LR (WAS Re: logical replication restrictions) ("Takamichi Osumi (Fujitsu)" <osumi.takamichi@fujitsu.com>) |
| Ответы |
Re: Time delayed LR (WAS Re: logical replication restrictions)
RE: Time delayed LR (WAS Re: logical replication restrictions) |
| Список | pgsql-hackers |
Thanks!
At Mon, 6 Feb 2023 13:10:01 +0000, "Takamichi Osumi (Fujitsu)" <osumi.takamichi@fujitsu.com> wrote in
> The attached patch v29 has included your changes.
catalogs.sgml
+ <para>
+ The minimum delay (ms) for applying changes.
+ </para></entry>
I think we don't use unit symbols that way. Namely I think we would
write it as "The minimum delay for applying changes in milliseconds"
alter_subscription.sgml
are <literal>slot_name</literal>,
<literal>synchronous_commit</literal>,
<literal>binary</literal>, <literal>streaming</literal>,
- <literal>disable_on_error</literal>, and
- <literal>origin</literal>.
+ <literal>disable_on_error</literal>,
+ <literal>origin</literal>, and
+ <literal>min_apply_delay</literal>.
</para>
By the way, is there any rule for the order among the words? They
don't seem in alphabetical order nor in the same order to the
create_sbuscription page. (I seems like in the order of SUBOPT_*
symbols, but I'm not sure it's a good idea..)
subscriptioncmds.c
+ if (opts.streaming == LOGICALREP_STREAM_PARALLEL &&
+ !IsSet(opts.specified_opts, SUBOPT_MIN_APPLY_DELAY) && sub->minapplydelay > 0)
..
+ if (opts.min_apply_delay > 0 &&
+ !IsSet(opts.specified_opts, SUBOPT_STREAMING) && sub->stream == LOGICALREP_STREAM_PARALLEL)
Don't we wrap the lines?
worker.c
+ if (wal_receiver_status_interval > 0 &&
+ diffms > wal_receiver_status_interval * 1000L)
+ {
+ WaitLatch(MyLatch,
+ WL_LATCH_SET | WL_TIMEOUT | WL_EXIT_ON_PM_DEATH,
+ wal_receiver_status_interval * 1000L,
+ WAIT_EVENT_RECOVERY_APPLY_DELAY);
+ send_feedback(last_received, true, false, true);
+ }
+ else
+ WaitLatch(MyLatch,
+ WL_LATCH_SET | WL_TIMEOUT | WL_EXIT_ON_PM_DEATH,
+ diffms,
+ WAIT_EVENT_RECOVERY_APPLY_DELAY);
send_feedback always handles the case where
wal_receiver_status_interval == 0. thus we can simply wait for
min(wal_receiver_status_interval, diffms) then call send_feedback()
unconditionally.
-start_apply(XLogRecPtr origin_startpos)
+start_apply(void)
-LogicalRepApplyLoop(XLogRecPtr last_received)
+LogicalRepApplyLoop(void)
Does this patch requires this change?
regards.
--
Kyotaro Horiguchi
NTT Open Source Software Center
В списке pgsql-hackers по дате отправления: