Re: Rewriting Free Space Map

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: Rewriting Free Space Map
Дата
Msg-id 47DEA175.1040405@dunslane.net
обсуждение исходный текст
Ответ на Re: Rewriting Free Space Map  (Gregory Stark <stark@enterprisedb.com>)
Список pgsql-hackers

Gregory Stark wrote:
> "Tom Lane" <tgl@sss.pgh.pa.us> writes:
>
>   
>> "Heikki Linnakangas" <heikki@enterprisedb.com> writes:
>>     
>>> My original thought was to have a separate RelFileNode for each of the 
>>> maps. That would require no smgr or xlog changes, and not very many 
>>> changes in the buffer manager, though I guess you'd more catalog 
>>> changes. You had doubts about that on the previous thread 
>>> (http://archives.postgresql.org/pgsql-hackers/2007-11/msg00204.php), but 
>>> the "map forks" idea certainly seems much more invasive than that.
>>>       
>> The main problems with that are (a) the need to expose every type of map
>> in pg_class and (b) the need to pass all those relfilenode numbers down
>> to pretty low levels of the system.  The nice thing about the fork idea
>> is that you don't need any added info to uniquely identify what relation
>> you're working on.  The fork numbers would be hard-wired into whatever
>> code needed to know about particular forks.  (Of course, these same
>> advantages apply to using special space in an existing file.  I'm
>> just suggesting that we can keep these advantages without buying into
>> the restrictions that special space would have.)
>>     
>
> One advantage of using separate relfilenodes would be that if we need to
> regenerate a map we could do it in a new relfilenode and swap it in like we do
> with heap rewrites.
>
>   

Why can't you just do that with a different extension and file rename? 
You'd need an exclusive lock while swapping in the new map, but you need 
that anyway, IIRC, and this way you don't even need a catalog change.

cheers

andrew


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Better error message for select_common_type()
Следующее
От: Zdenek Kotala
Дата:
Сообщение: How large file is really large - pathconf results