FSM search modes

Поиск
Список
Период
Сортировка
От Simon Riggs
Тема FSM search modes
Дата
Msg-id 1253201179.9666.174.camel@ebony.2ndQuadrant
обсуждение исходный текст
Ответы Re: FSM search modes  (Itagaki Takahiro <itagaki.takahiro@oss.ntt.co.jp>)
Re: FSM search modes  (Hannu Krosing <hannu@2ndQuadrant.com>)
Список pgsql-hackers
Just been looking again at the way FSM works. In fsm_search_avail() we
essentially have just a single way for working out how to search the
tree.

Seems like it would be good to abstract this so that we can implement a
number of FSM search strategies

* (current) randomize - page selection encourages different backends to
access different blocks, thus reducing block contention

* cluster - page selection made based around selecting block with
freespace nearest current block and we prefer keep-in-sequence to
avoid-contention

* compact - page selection specifically attempts to find the lowest
numbered blocks, so that the table will naturally shrink over time.

These are not all mutually exclusive, suggested combinations would be

randomize, randomize | cluster, randomize | compact

So we don't give up the load spreading behaviour, we just apply the
logic at lower levels of the tree only.

VACUUM could set the FSM into FSMstrategy = compact when it notices that
most of the free blocks are at lower end of table. Or explicitly set
during VF replacement utility.

FSMstrategy = cluster would be the default if clustering is enabled on a
table.

FSMstrategy can change via ALTER TABLE ... WITH (fsm_strategy = ...)

-- Simon Riggs           www.2ndQuadrant.com



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

Предыдущее
От: Emmanuel Cecchet
Дата:
Сообщение: Re: generic copy options
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Feedback on getting rid of VACUUM FULL