Re: Support for N synchronous standby servers - take 2
От | Fujii Masao |
---|---|
Тема | Re: Support for N synchronous standby servers - take 2 |
Дата | |
Msg-id | CAHGQGwH9SJHxCfZYbRDtOHeMNDpm2+gbJYKrJCgBtAhUj4Wb5A@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Support for N synchronous standby servers - take 2 (Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>) |
Список | pgsql-hackers |
On Wed, Apr 6, 2016 at 5:01 PM, Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp> wrote: > At Wed, 6 Apr 2016 15:29:12 +0900, Fujii Masao <masao.fujii@gmail.com> wrote in <CAHGQGwHGQEwH2c9buiZ=G7Ko8PQYwiU7=NsDkvCjRKUPSN8j7A@mail.gmail.com> >> > @@ -640,6 +639,13 @@ SyncRepGetSyncStandbys(bool *am_sync) >> > } >> > >> > /* >> > + * The pending list contains eventually potentially-synchronized standbys >> > + * and this walsender may be one of them. So once reset am_sync. >> > + */ >> > + if (am_sync != NULL) >> > + *am_sync = false; >> > + >> > + /* >> >> This code seems wrong in the case where this walsender is in the result list. >> So I adopted another logic. Attached is the updated version of the patch. > > You must misread the patch. am_sync is originally set in the loop > just after that for the case. > > ! while (priority <= lowest_priority) > ! { > .. > ! for (cell = list_head(pending); cell != NULL; cell = next) > ! { > ... > ! if (this_priority == priority) > ! { > ! result = lappend_int(result, i); > ! if (am_sync != NULL && walsnd == MyWalSnd) > ! *am_sync = true; But if this walsender has the priority 1, *am_sync is set to true in the first loop not the second one. No? Regards, -- Fujii Masao
В списке pgsql-hackers по дате отправления: