Re: Is Recovery actually paused?

Поиск
Список
Период
Сортировка
От Dilip Kumar
Тема Re: Is Recovery actually paused?
Дата
Msg-id CAFiTN-sYujyKszU53COXwGTNsQMOgc+J+xWyMaRV-WAxwNiTFw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Is Recovery actually paused?  (Yugo NAGATA <nagata@sraoss.co.jp>)
Ответы Re: Is Recovery actually paused?
Список pgsql-hackers
On Mon, Feb 8, 2021 at 2:19 PM Yugo NAGATA <nagata@sraoss.co.jp> wrote:
>
> On Mon, 08 Feb 2021 17:32:46 +0900 (JST)
> Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote:
>
> > At Mon, 8 Feb 2021 14:12:35 +0900, Yugo NAGATA <nagata@sraoss.co.jp> wrote in
> > > > > > I think the right fix should be that the state should never go from
> > > > > > ‘paused’ to ‘pause requested’  so I think pg_wal_replay_pause should take
> > > > > > care of that.
> > > > >
> > > > > It makes sense to take care of this in pg_wal_replay_pause, but I wonder
> > > > > it can not handle the case that a user resume and pause again while a sleep.
> > > >
> > > > Right, we will have to check and set in the loop.  But we should not
> > > > allow the state to go from paused to pause requested irrespective of
> > > > this.
> > >
> > > I agree with you.
> >
> > Is there any actual harm if PAUSED returns to REQUESETED, assuming we
> > immediately change the state to PAUSE always we see REQUESTED in the
> > waiting loop, despite that we allow change the state from PAUSE to
> > REQUESTED via NOT_PAUSED between two successive loop condition checks?
>
> If a user call pg_wal_replay_pause while recovery is paused, users can
> observe 'pause requested' during a sleep alghough the time window is short.
> It seems a bit odd that pg_wal_replay_pause changes the state like this
> because This state meeans that recovery may not be 'paused'.

Yeah, this appears wrong that after 'paused' we go back to 'pause
requested'.  the logical state transition should always be as below

NOT PAUSED -> PAUSE REQUESTED or PAUSED (maybe we should always go to
request and then paused but there is nothing wrong with going to
paused)
PAUSE REQUESTED -> NOT PAUSE or PAUSED (either cancel the request or get paused)
PAUSED -> NOT PAUSED (from PAUSED we should not go to the
PAUSE_REQUESTED without going to NOT PAUSED)

--
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: automatic analyze: readahead - add "IO read time" log message
Следующее
От: "Tang, Haiying"
Дата:
Сообщение: RE: Support tab completion for upper character inputs in psql