Re: Free Space Map data structure

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: Free Space Map data structure
Дата
Msg-id 4800B2F9.70305@enterprisedb.com
обсуждение исходный текст
Ответ на Re: Free Space Map data structure  (Hannu Krosing <hannu@krosing.net>)
Список pgsql-hackers
Hannu Krosing wrote:
>   index   tree node  binary mask  mask bits
>     0        0          00000         
>     1        0-1        0000?         1
>     2        1          00001         
>     3        0-3        000??         2
>     4        2          00010         
>     5        2-3        0001?         1
>    ...
>    31        0-31       ?????         5
> ...32........16.........10000.........
> 
> seems to be a simple pattern

Oh, I see. I was thinking that the tree would be of the same height on 
all branches, but your method seems simpler. Though it meens that 
existing nodes need to be assigned to new parents as the tree grows.

Now how to extend this to n-ary trees? Assuming we use a normal binary 
tree stored in an array the usual way, within page, we can treat the FSM 
pages as nodes with fanout of (BLCKSZ - size of headers)/2.

Thanks to the large fanout, the height of that tree is not large, max 3 
levels with default block size (*) and not much more than that with 
smaller block sizes. One idea is to use a separate "fork" for each 
level, that would keep the math simple.

(*) We need to cover max 2^32 heap pages == 2^32 leaf nodes. You can fit 
~4000 leaf nodes on a page. 4000^3 > 2^32.

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


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

Предыдущее
От: PFC
Дата:
Сообщение: Re: Cached Query Plans
Следующее
От: Perez
Дата:
Сообщение: Re: Cached Query Plans (was: global prepared statements)