Re: Compressed TOAST Slicing

Поиск
Список
Период
Сортировка
От Paul Ramsey
Тема Re: Compressed TOAST Slicing
Дата
Msg-id 9136FFD1-EE77-4D90-9856-AFFDF117BCB8@cleverelephant.ca
обсуждение исходный текст
Ответ на Re: Compressed TOAST Slicing  (Andrey Borodin <x4mmm@yandex-team.ru>)
Ответы Re: Compressed TOAST Slicing  (Andrey Borodin <x4mmm@yandex-team.ru>)
Re: Compressed TOAST Slicing  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
> On Apr 9, 2019, at 10:09 AM, Andrey Borodin <x4mmm@yandex-team.ru> wrote:
>
> He advised me to use algorithm that splits copied regions into smaller non-overlapping subregions with exponentially
increasingsize. 
>
> while (off <= len)
> {
>    memcpy(dp, dp - off, off);
>    len -= off;
>    dp += off;
>    off *= 2;
> }
> memcpy(dp, dp - off, len);
>
> On original Paul's test without patch of this thread this optimization gave about x2.5 speedup.
> I've composed more detailed tests[0] and tested against current master. Now it only gives 20%-25% of decompression
speedup,but I think it is still useful. 

Wow, well beyond slicing, just being able to decompress 25% faster is a win for pretty much any TOAST use case. I guess
the$100 question is: portability? The whole reason for the old-skool code that’s there now was concerns about
memcpy’ingoverlapping addresses and Bad Things happening. 

P.


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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: Copy function for logical replication slots
Следующее
От: Andrey Borodin
Дата:
Сообщение: Re: Compressed TOAST Slicing