Re: BitmapHeapScan streaming read user and prelim refactoring

Поиск
Список
Период
Сортировка
От Tomas Vondra
Тема Re: BitmapHeapScan streaming read user and prelim refactoring
Дата
Msg-id 143eb079-0c70-4031-a7b8-ec6aa6e5108b@enterprisedb.com
обсуждение исходный текст
Ответ на Re: BitmapHeapScan streaming read user and prelim refactoring  (Melanie Plageman <melanieplageman@gmail.com>)
Список pgsql-hackers
On 3/18/24 16:19, Melanie Plageman wrote:
> On Mon, Mar 18, 2024 at 02:10:28PM +0200, Heikki Linnakangas wrote:
>> On 14/02/2024 21:42, Andres Freund wrote:
>>> On 2024-02-13 18:11:25 -0500, Melanie Plageman wrote:
>>>> patch 0004 is, I think, a bug fix. see [2].
>>>
>>> I'd not quite call it a bugfix, it's not like it leads to wrong
>>> behaviour. Seems more like an optimization. But whatever :)
>>
>> It sure looks like bug to me, albeit a very minor one. Certainly not an
>> optimization, it doesn't affect performance in any way, only what EXPLAIN
>> reports. So committed and backported that to all supported branches.
> 
> I've attached v7 rebased over this commit.
>

I've started a new set of benchmarks with v7 (on top of f69319f2f1), but
unfortunately that results in about 15% of the queries failing with:

  ERROR:  prefetch and main iterators are out of sync

Reproducing it is pretty simple (at least on my laptop). Simply apply
0001-0011, and then do this:

======================================================================
create table test_table (a bigint, b bigint, c text) with (fillfactor = 25);

insert into test_table select 10000 * random(), i, md5(random()::text)
from generate_series(1, 1000000) s(i);

create index on test_table(a);

vacuum analyze ;
checkpoint;

set work_mem = '128kB';
set effective_io_concurrency = 8;
set random_page_cost = 2;
set max_parallel_workers_per_gather = 0;

explain select * from test_table where a >= 1 and a <= 512;

explain analyze select * from test_table where a >= 1 and a <= 512;

ERROR:  prefetch and main iterators are out of sync
======================================================================

I haven't investigated this, but it seems to get broken by this patch:

  v7-0009-Make-table_scan_bitmap_next_block-async-friendly.patch

I wonder if there are some additional changes aside from the rebase.


regards

-- 
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



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

Предыдущее
От: "Andrey M. Borodin"
Дата:
Сообщение: Re: UUID v7
Следующее
От: Robert Haas
Дата:
Сообщение: Re: [DOCS] HOT - correct claim about indexes not referencing old line pointers