| From: | Alexander Korotkov <aekorotkov(at)gmail(dot)com> | 
|---|---|
| To: | Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> | 
| Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: WIP: Fast GiST index build | 
| Date: | 2011-07-27 14:43:26 | 
| Message-ID: | CAPpHfdu9euc5=9D3kC+cuOa4N0=4nQKY1hu=oSvHbrSnApa4gg@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On Wed, Jul 27, 2011 at 6:05 PM, Heikki Linnakangas <
heikki(dot)linnakangas(at)enterprisedb(dot)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.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2011-07-27 14:51:13 | Re: Pull up aggregate sublink (was: Parameterized aggregate subquery (was: Pull up aggregate subquery)) | 
| Previous Message | Yeb Havinga | 2011-07-27 14:40:23 | Re: Pull up aggregate sublink (was: Parameterized aggregate subquery (was: Pull up aggregate subquery)) |