Re: Logical to physical page mapping

Поиск
Список
Период
Сортировка
От Jan Wieck
Тема Re: Logical to physical page mapping
Дата
Msg-id 508DB327.6000805@Yahoo.com
обсуждение исходный текст
Ответ на Re: Logical to physical page mapping  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Ответы Re: Logical to physical page mapping
Список pgsql-hackers
On 10/27/2012 2:41 PM, Heikki Linnakangas wrote:
> And it's not at all
> clear to me that it would perform better than full_page_writes. You're
> writing and flushing out roughly the same amount of data AFAICS.

I think this assumption is wrong. full_page_writes=on means we write the 
full page content to WAL on first change after a checkpoint. A change 
after a checkpoint logically means that the same page is dirty now and 
must also be written latest during the next checkpoint, which means 16K 
written minimum for every page changed after a checkpoint.

> What exactly is the problem with full_page_writes that we're trying to
> solve?

Full page writes are meant to guard against torn pages. That is the case 
when an 8K page is written by the underlying OS/filesystem/HW in smaller 
chunks (for example 512 byte sectors), and in the case of a crash some 
of these chunks make it, others don't. Without full_page_writes, crash 
recovery can work if all 8K made it, or nothing made it (aka atomic 
writes). But it will fail otherwise.

The amount of WAL generated with full_page_writes=on is quite 
substantial. For pgbench for example the ratio 20:1. Meaning with 
full_page_writes you write 20x the amount you do without.


Jan

-- 
Anyone who trades liberty for security deserves neither
liberty nor security. -- Benjamin Franklin



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

Предыдущее
От: David Lee
Дата:
Сообщение: Creating indexes in the background
Следующее
От: Simon Riggs
Дата:
Сообщение: Re: foreign key locks