Thread

  1. Re: WIP: Fast GiST index build

    Alexander Korotkov <aekorotkov@gmail.com> — 2011-08-02T12:33:16Z

    Hi!
    
    I'm now working on adding features to your version of patch. Current version
    is attached. Somehow this version produce huge amount of WAL and that makes
    it slow. Though count and avg. length of WAL records is similar to that of
    non-buffering build.
    
    test=# create table points as (select point(random(),random()) from
    generate_series(1,1000000));
    SELECT 1000000
    test=# select pg_xlogfile_name_offset(pg_current_xlog_location());
           pg_xlogfile_name_offset
    -------------------------------------
     (000000010000004000000073,15005048)
    (1 row)
    
    test=# create index points_idx on points using gist (point) with
    (buffering=off);CREATE INDEX
    test=# select pg_xlogfile_name_offset(pg_current_xlog_location());
           pg_xlogfile_name_offset
    -------------------------------------
     (00000001000000400000007E,13764024)
     (1 row)
    
    test=# create index points_idx2 on points using gist (point) with
    (buffering=on, neighborrelocation=off);
    INFO:  Level step = 1, pagesPerBuffer = 406
    NOTICE:  final emptying
    NOTICE:  final emptying
    NOTICE:  final emptying
    NOTICE:  final emptying
    CREATE INDEX
    test=# select pg_xlogfile_name_offset(pg_current_xlog_location());
           pg_xlogfile_name_offset
    -------------------------------------
     (0000000100000040000000D2,10982288)
    (1 row)
    
    May be you have any ideas about it?
    
    ------
    With best regards,
    Alexander Korotkov.