From: | Alexander Korotkov <aekorotkov(at)gmail(dot)com> |
---|---|
To: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> |
Cc: | Tomas Vondra <tv(at)fuzzy(dot)cz>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: GIN improvements part 1: additional information |
Date: | 2014-01-21 13:14:31 |
Message-ID: | CAPpHfdvku_rgziJ0GB_JeNszNNeZ8LqOZ1A1-P1ycr3urK0hdA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Jan 21, 2014 at 4:28 PM, Alexander Korotkov <aekorotkov(at)gmail(dot)com>wrote:
> I noticed that the gin vacuum redo routine is dead code, except for the
>> data-leaf page handling, because we never remove entries or internal nodes
>> (page deletion is a separate wal record type). And the data-leaf case is
>> functionally equivalent to heap newpage records. I removed the dead code
>> and made it more clear that it resembles heap newpage.
>>
>> Attached is a yet another version, with more bugs fixed and more comments
>> added and updated. I would appreciate some heavy-testing of this patch now.
>> If you could re-run the tests you've been using, that could be great. I've
>> tested the WAL replay by replicating GIN operations over streaming
>> replication. That doesn't guarantee it's correct, but it's a good smoke
>> test.
>
>
> I tried my test-suite but it hangs on index scan with infinite loop. I
> re-tried it on my laptop with -O0. I found it to crash on update and vacuum
> in some random places like:
> Assert(GinPageIsData(page)); in xlogVacuumPage
> Assert(ndecoded == totalpacked); in ginCompressPostingList
> Trying to debug it.
>
Another question is about dataPlaceToPageLeaf:
while ((Pointer) seg < segend)
{
if (ginCompareItemPointers(&minNewItem, &seg->first) < 0)
break;
Shouldn't we adjust seg to previous segment? If minNewItem is less than
seg->first we should insert it to previous segment.
------
With best regards,
Alexander Korotkov.
From | Date | Subject | |
---|---|---|---|
Next Message | MauMau | 2014-01-21 13:27:01 | Re: [bug fix] pg_ctl always uses the same event source |
Previous Message | Michael Paquier | 2014-01-21 13:12:25 | Re: REINDEX CONCURRENTLY 2.0 |