Re: WAL write of full pages

From: Dennis Haney <davh(at)diku(dot)dk>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: PostgreSQL-development <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: WAL write of full pages
Date: 2004-03-16 14:14:48
Message-ID: 40570BD8.1010906@diku.dk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Bruce Momjian wrote:

>Our current WAL implementation writes copies of full pages to WAL before
>modifying the page on disk. This is done to prevent partial pages from
>being corrupted in case the operating system crashes during a page
>write.
>
>
InnoDB uses a doublebuffer system instead.
http://www.innodb.com/ibman.php#File.space.management

quote:

Starting from 3.23.40b, InnoDB uses a novel file flush technique called
"doublewrite". It adds safety to crash recovery after an operating
system crash or a power outage, and improves performance on most Unix
flavors by reducing the need for |fsync()| operations.

Doublewrite means that InnoDB before writing pages to a data file first
writes them to a contiguous tablespace area called the doublewrite
buffer. Only after the write and the flush to the doublewrite buffer has
completed, InnoDB writes the pages to their proper positions in the data
file. If the operating system crashes in the middle of a page write,
InnoDB will in recovery find a good copy of the page from the
doublewrite buffer.

--
Dennis

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Shridhar Daithankar 2004-03-16 14:22:31 Re: WAL write of full pages
Previous Message Shridhar Daithankar 2004-03-16 14:09:20 Re: WAL write of full pages