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
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 |