Re: TODO-Item: B-tree fillfactor control

Поиск
Список
Период
Сортировка
От ITAGAKI Takahiro
Тема Re: TODO-Item: B-tree fillfactor control
Дата
Msg-id 20060210170213.48E1.ITAGAKI.TAKAHIRO@lab.ntt.co.jp
обсуждение исходный текст
Ответ на Re: TODO-Item: B-tree fillfactor control  (Simon Riggs <simon@2ndquadrant.com>)
Ответы Re: TODO-Item: B-tree fillfactor control  (Simon Riggs <simon@2ndquadrant.com>)
Re: TODO-Item: B-tree fillfactor control  (Simon Riggs <simon@2ndquadrant.com>)
Список pgsql-patches
This is a revised patch for index fillfactor control:
  - Split MAX_PCTFREE into three for each index method.
  - B-tree indexes use their own settings when rightmost page is split.
  - Fix a bug that GUC is modified when index building is canceled.
  - Add some documentations.


Simon Riggs <simon@2ndquadrant.com> wrote:

> Do you have any performance numbers for the extreme settings? It may be
> worth having different max limits for each of the index types, since
> they differ so widely in algorithms.

Different max limits are done.
I worry about whether index works properly on high PCTFREE settings. I found
hash has its own sanity checking, but I don't know other indexes have.


> I'm surprised that you do not use the parameter to control the RIGHTMOST
> index block split factor for B-trees, which remains at a constant 67%.
> The PCTFREE only seems to apply at CREATE INDEX time.

Thanks for pointing out. I did not inadvertently use fillfactor on
the rightmost page. With the revised patch, PCTFREE will be considered
in such cases.

# CREATE TABLE test (i int);
# INSERT INTO test SELECT generate_series(1, 100000);
# CREATE INDEX btree ON test USING btree (i) PCTFREE 0;
# SELECT relpages from pg_class where relname ='btree';
relpages | 249
# INSERT INTO test SELECT generate_series(100001, 200000);
# SELECT relpages from pg_class where relname ='btree';
relpages | 497    <-- +99.6%


But default settings will change. Is this ok?

                 |     |      patched     |
                 | now | free=10 | free=0 |
-----------------+-----+---------+--------+-
leaf (REINDEX)   |  10 |      10 |      0 |
leaf (RIGHTMOST) |  30 |      10 |      0 | = leaf
node (REINDEX)   |  30 |      30 |      0 | = 3*leaf


> If we support PCTFREE for compatibility reasons should we not also
> support the alternative FILLFACTOR syntax also? I see no reason to
> favour Oracle/DB2 compatability at the expense of SQLServer
> compatibility.

There are few synonyms in PostgreSQL, so I think it is better for us to
adopt only either one. I like FILLFACTOR personally, but compatibility
with Oracle is more important to users around me.

---
ITAGAKI Takahiro
NTT Cyber Space Laboratories


Вложения

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

Предыдущее
От: ITAGAKI Takahiro
Дата:
Сообщение: ignore_killed_tuples is always true
Следующее
От: Simon Riggs
Дата:
Сообщение: Re: TODO-Item: B-tree fillfactor control