> 3 сент. 2020 г., в 23:40, Heikki Linnakangas <hlinn...@iki.fi> написал(а): > > On 30/08/2020 15:04, Andrey M. Borodin wrote: >>> 23 авг. 2020 г., в 14:39, Andrey M. Borodin <x4...@yandex-team.ru> >>> написал(а): >>> >>> Thanks for reviewing and benchmarking, Pavel! >> Pavel sent me few typos offlist. PFA v12 fixing these typos. > > In gist_indexsortbuild(), you first build all the leaf pages. Then, you read > through all the index pages you just built, to form the tuples for the next > level, and repeat for all the upper levels. That seems inefficient, it would > be more better to form the tuples for the downlinks as you go, when you build > the leaf pages in the first place. That's how nbtsort.c works. Also, you > could WAL-log the pages as you go. > > In gist_indexsortbuild_flush(), can't you just memcpy() the page from > memory to the buffer? > > - Heikki Thanks for ideas, Heikki. Please see v13 with proposed changes. But I've found out that logging page-by-page slows down GiST build by approximately 15% (when CPU constrained). Though In think that this is IO-wise.
Thanks! Best regards, Andrey Borodin.
v13-0001-Add-sort-support-for-point-gist_point_sortsuppor.patch
Description: Binary data
v13-0002-Implement-GiST-build-using-sort-support.patch
Description: Binary data