Re: FSM corruption leading to errors

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: FSM corruption leading to errors
Дата
Msg-id 18695.1477325088@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: FSM corruption leading to errors  (Michael Paquier <michael.paquier@gmail.com>)
Список pgsql-hackers
Michael Paquier <michael.paquier@gmail.com> writes:
> Release notes refer to this page for methods to fix corrupted instances:
> https://wiki.postgresql.org/wiki/Free_Space_Map_Problems
> I just typed something based on Pavan's upper method, feel free to
> jump in and improve it as necessary.

Thanks for drafting that, but isn't the query wrong?
Specifically the bit about
   SELECT blkno, pg_freespace(oid::regclass, blkno)   FROM generate_series(pg_relation_size(oid::regclass) /
current_setting('block_size')::BIGINT,                       pg_relation_size(oid::regclass, 'fsm') / 2) AS blkno 

It looks to me like this is approximating the highest block number that
could possibly have an FSM entry as size of the FSM fork (in bytes)
divided by 2.  But the FSM stores one byte per block.  There is overhead
for the FSM search tree, but in a large relation it's not going to be as
much as a factor of 2.  So I think that to be conservative we need to
drop the "/ 2".  Am I missing something?
        regards, tom lane



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

Предыдущее
От: Pavan Deolasee
Дата:
Сообщение: Re: FSM corruption leading to errors
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Patch: Implement failover on libpq connect level.