Re: Online checksums verification in the backend

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: Online checksums verification in the backend
Дата
Msg-id 20201029183106.r5xkcws6zkwupip2@alap3.anarazel.de
обсуждение исходный текст
Ответ на Re: Online checksums verification in the backend  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
Hi,

On 2020-10-29 11:17:29 -0700, Andres Freund wrote:
>         LWLockAcquire(BufferDescriptorGetIOLock(bufdesc), LW_SHARED);
>         buf_state = LockBufHdr(bufdesc);
>         UnlockBufHdr(bufdesc, buf_state);
> 
>         /* If the page is dirty or invalid, skip it */
>         if ((buf_state & BM_DIRTY) != 0 || (buf_state & BM_TAG_VALID) == 0)

This is weird as well. What is this supposed to do? Just locking and
unlocking a buffer header doesn't do squat? There's no guarantee that
the flags haven't changed by this point, so you could just as well not
acquire the buffer header lock.

Also, why are pages without a valid tag ignored? I can follow the
argument for skipping it in the DIRTY case, but that doesn't apply for
BM_TAG_VALID?

Greetings,

Andres Freund



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

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: Online checksums verification in the backend
Следующее
От: Andres Freund
Дата:
Сообщение: Re: Online checksums verification in the backend