Re: Compressed TOAST Slicing

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: Compressed TOAST Slicing
Дата
Msg-id 20190409172049.bnjseaylju3r6lf6@alap3.anarazel.de
обсуждение исходный текст
Ответ на Re: Compressed TOAST Slicing  (Paul Ramsey <pramsey@cleverelephant.ca>)
Ответы Re: Compressed TOAST Slicing  (Andrey Borodin <x4mmm@yandex-team.ru>)
Re: Compressed TOAST Slicing  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On 2019-04-09 10:12:56 -0700, Paul Ramsey wrote:
> 
> > 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
exponentiallyincreasing size.
 
> > 
> > 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
guessthe $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.
 

Just use memmove? It's usually as fast these days.



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

Предыдущее
От: Andrey Borodin
Дата:
Сообщение: Re: Compressed TOAST Slicing
Следующее
От: Andrey Borodin
Дата:
Сообщение: Re: Compressed TOAST Slicing