Re: making relfilenodes 56 bits

Поиск
Список
Период
Сортировка
От Robert Haas
Тема Re: making relfilenodes 56 bits
Дата
Msg-id CA+TgmobHABv5uP3wa1vUNX+bkxvAyKt2tFFBEzj+BVaGafo55w@mail.gmail.com
обсуждение исходный текст
Ответ на Re: making relfilenodes 56 bits  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
On Fri, Jun 24, 2022 at 9:30 PM Andres Freund <andres@anarazel.de> wrote:
> If we "inline" RelFileNumber, it's probably worth reorder the members so that
> the most distinguishing elements come first, to make it quicker to detect hash
> collisions. It shows up in profiles today...
>
> I guess it should be blockNum, fileNumber, forkNumber, dbOid, spcOid? I think
> as long as blockNum, fileNumber are first, the rest doesn't matter much.

Hmm, I guess we could do that. Possibly as a separate, very small patch.

> > And then like this in 0003:
> >
> > typedef struct buftag
> > {
> >     Oid     spcOid;
> >     Oid     dbOid;
> >     RelFileNumber   fileNumber:56;
> >     ForkNumber  forkNum:8;
> > } BufferTag;
>
> Probably worth checking the generated code / the performance effects of using
> bitfields (vs manual maskery). I've seen some awful cases, but here it's at a
> byte boundary, so it might be ok.

One advantage of using bitfields is that it might mean we don't need
to introduce accessor macros. Now, if that's going to lead to terrible
performance I guess we should go ahead and add the accessor macros -
Dilip had those in an earlier patch anyway. But it'd be nice if it
weren't necessary.

-- 
Robert Haas
EDB: http://www.enterprisedb.com



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

Предыдущее
От: Andrey Borodin
Дата:
Сообщение: Re: pg_upgrade (12->14) fails on aggregate
Следующее
От: Justin Pryzby
Дата:
Сообщение: Re: ICU for global collation