New FSM allocation policy

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема New FSM allocation policy
Дата
Msg-id 48B7A7E7.2040206@enterprisedb.com
обсуждение исходный текст
Ответы Re: New FSM allocation policy  (Gregory Stark <stark@enterprisedb.com>)
Re: New FSM allocation policy  (Bruce Momjian <bruce@momjian.us>)
Список pgsql-hackers
The way my rewritten FSM works at the moment is that pages are handed 
out of the FSM in random order, to spread the load of multiple backends 
to different pages. That's good for spreading the load, but it occurred 
to me while observing a test case that inserts a lot of rows to an 
almost empty table with plenty of free space, that that sucks for the 
case of a single backend populating a table. Currently, FSM will hand 
out pages in sequential order, so from OS point of view we're reading 
and writing the pages sequentially. If the pages are handed out in 
random order, we'll do random I/O instead.

Fortunately there's an easy fix for that. If we optimize 
RecordAndGetPageWithFreeSpace so that it will always return the next 
page if it has enough space, we'll be doing sequential I/O again. That's 
trivial as long as the next heap page is on the same FSM page, and 
probably not too hard even if it's not. If we limit this optimization to 
within the same FSM page, we'll effectively be filling fully a 32MB stripes

Thoughts?

I'm running more tests, and there's more issues that need discussion, 
but I'll start separate threads for each. I'll also post an updated 
patch separately.

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


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

Предыдущее
От: Greg Smith
Дата:
Сообщение: Re: Proposal: new border setting in psql
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: New FSM patch