Re: WIP: Fast GiST index build - Mailing list pgsql-hackers

From Alexander Korotkov
Subject Re: WIP: Fast GiST index build
Date
Msg-id CAPpHfdu9euc5=9D3kC+cuOa4N0=4nQKY1hu=oSvHbrSnApa4gg@mail.gmail.com
Whole thread Raw
In response to Re: WIP: Fast GiST index build  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Responses Re: WIP: Fast GiST index build
Hot standby and GiST page splits (was Re: WIP: Fast GiST index build)
List pgsql-hackers
On Wed, Jul 27, 2011 at 6:05 PM, Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> wrote:
Dunno, both approaches seem reasonable to me. There's no rule against changing WAL record structure across major releases, if that's what you were worried about.
 
OK, thanks. I also found behaviour of GiST(without patch) with streaming replication that seems strange for me. On master there are only few rightlinks are InvalidBlockNumber while on slave there are a lot of them. I hack gevel for getting index structure on slave (accessing tree without AccessExclusiveLock).

On master:
# create table test as (select point(random(),random()) from generate_series(1,100000));
# create index test_idx on test using gist(point);
# \copy (select gist_tree('test_idx')) to 'tree1r.txt';

On slave:
# \copy (select gist_tree('test_idx')) to 'tree2r.txt';

In bash:
# cat tree1r.txt | sed 's/\\n/\n/g' > tree1.txt
# cat tree2r.txt | sed 's/\\n/\n/g' > tree2.txt
# diff tree1.txt tree2.txt

2,89c2,89
<     1(l:1) blk: 324 numTuple: 129 free: 2472b(69.71%) rightlink:637 (OK)
<         1(l:2) blk: 242 numTuple: 164 free: 932b(88.58%) rightlink:319 (OK)
<         2(l:2) blk: 525 numTuple: 121 free: 2824b(65.39%) rightlink:153 (OK)
<         3(l:2) blk: 70 numTuple: 104 free: 3572b(56.23%) rightlink:551 (OK)
<         4(l:2) blk: 384 numTuple: 106 free: 3484b(57.30%) rightlink:555 (OK)
<         5(l:2) blk: 555 numTuple: 121 free: 2824b(65.39%) rightlink:74 (OK)
<         6(l:2) blk: 564 numTuple: 109 free: 3352b(58.92%) rightlink:294 (OK)
<         7(l:2) blk: 165 numTuple: 108 free: 3396b(58.38%) rightlink:567 (OK)
.....
---
>     1(l:1) blk: 324 numTuple: 129 free: 2472b(69.71%) rightlink:4294967295 (InvalidBlockNumber)
>         1(l:2) blk: 242 numTuple: 164 free: 932b(88.58%) rightlink:4294967295 (InvalidBlockNumber)
>         2(l:2) blk: 525 numTuple: 121 free: 2824b(65.39%) rightlink:4294967295 (InvalidBlockNumber)
>         3(l:2) blk: 70 numTuple: 104 free: 3572b(56.23%) rightlink:4294967295 (InvalidBlockNumber)
>         4(l:2) blk: 384 numTuple: 106 free: 3484b(57.30%) rightlink:4294967295 (InvalidBlockNumber)
>         5(l:2) blk: 555 numTuple: 121 free: 2824b(65.39%) rightlink:4294967295 (InvalidBlockNumber)
>         6(l:2) blk: 564 numTuple: 109 free: 3352b(58.92%) rightlink:4294967295 (InvalidBlockNumber)
>         7(l:2) blk: 165 numTuple: 108 free: 3396b(58.38%) rightlink:4294967295 (InvalidBlockNumber)
.....

Isn't it a bug?

------
With best regards,
Alexander Korotkov. 

pgsql-hackers by date:

Previous
From: Yeb Havinga
Date:
Subject: Re: Pull up aggregate sublink (was: Parameterized aggregate subquery (was: Pull up aggregate subquery))
Next
From: Tom Lane
Date:
Subject: Re: Pull up aggregate sublink (was: Parameterized aggregate subquery (was: Pull up aggregate subquery))