Re: [HACKERS] make async slave to wait for lsn to be replayed
От | Alexander Korotkov |
---|---|
Тема | Re: [HACKERS] make async slave to wait for lsn to be replayed |
Дата | |
Msg-id | CAPpHfdt=Edtk9B3owg4of6v5Y=vi6=5R9ZHM84KPOdR6mER0wg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] make async slave to wait for lsn to be replayed (Картышов Иван <i.kartyshov@postgrespro.ru>) |
Ответы |
Re: [HACKERS] make async slave to wait for lsn to be replayed
Re: [HACKERS] make async slave to wait for lsn to be replayed |
Список | pgsql-hackers |
On Mon, Nov 20, 2023 at 1:10 PM Картышов Иван <i.kartyshov@postgrespro.ru> wrote: > Alexander, thank you for your review and pointing this issues. According to > them I made some fixes and rebase all patch. > > But I can`t repeat your ERROR. Not with hot_standby_feedback = on nor > hot_standby_feedback = off. > > master: create table test as (select i from generate_series(1,10000) i); > slave conn1: select pg_wal_replay_pause(); > master: delete from test; > master: vacuum test; > master: select pg_current_wal_lsn(); > slave conn2: select pg_wait_lsn('the value from previous query'::pg_lsn, 0); > slave conn1: select pg_wal_replay_resume(); > slave conn2: ERROR: canceling statement due to conflict with recovery > DETAIL: User query might have needed to see row versions that must be removed. > > Also I use little hack to work out of snapshot similar to SnapshotResetXmin. > > Patch rebased and ready for review. I've retried my case with v6 and it doesn't fail anymore. But I wonder how safe it is to reset xmin within the user-visible function? We have no guarantee that the function is not called inside the complex query. Then how will the rest of the query work with xmin reset? Separate utility statement still looks like more safe option for me. ------ Regards, Alexander Korotkov
В списке pgsql-hackers по дате отправления: