Re: [HACKERS] Small improvement to compactify_tuples

Поиск
Список
Период
Сортировка
От Юрий Соколов
Тема Re: [HACKERS] Small improvement to compactify_tuples
Дата
Msg-id CAL-rCA1_KLQjhyba7ow0VH9Nd6=iO8GzYSrSFVBDvEX8zeCQ_w@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [HACKERS] Small improvement to compactify_tuples  (Claudio Freire <klaussfreire@gmail.com>)
Ответы Re: [HACKERS] Small improvement to compactify_tuples  (Claudio Freire <klaussfreire@gmail.com>)
Список pgsql-hackers

2017-11-06 17:55 GMT+03:00 Claudio Freire <klaussfreire@gmail.com>:
>
> On Mon, Nov 6, 2017 at 11:50 AM, Юрий Соколов <funny.falcon@gmail.com> wrote:
> >> Maybe leave a fallback to qsort if some corner case produces big buckets?
> >
> > For 8kb pages, each bucket is per 32 bytes. So, for heap pages it is at
> > most 1 heap-tuple per bucket, and for index pages it is at most 2 index
> > tuples per bucket. For 32kb pages it is 4 heap-tuples and 8 index-tuples
> > per bucket.
> > It will be unnecessary overhead to call non-inlineable qsort in this cases
> >
> > So, I think, shell sort could be removed, but insertion sort have to remain.
> >
> > I'd prefer shell sort to remain also. It could be useful in other places
> > also,
> > because it is easily inlinable, and provides comparable to qsort performance
> > up to several hundreds of elements.
>
> I'd rather have an inlineable qsort.

But qsort is recursive. It is quite hard to make it inlineable. And still it will be
much heavier than insertion sort (btw, all qsort implementations uses insertion
sort for small arrays). And it will be heavier than shell sort for small arrays.

I can do specialized qsort for this case. But it will be larger bunch of code, than
shell sort.

> And I'd recommend doing that when there is a need, and I don't think
> this patch really needs it, since bucket sort handles most cases
> anyway.

And it still needs insertion sort for buckets.
I can agree to get rid of shell sort. But insertion sort is necessary. 

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

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: [HACKERS] MERGE SQL Statement for PG11
Следующее
От: Claudio Freire
Дата:
Сообщение: Re: [HACKERS] Small improvement to compactify_tuples