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

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 11 of 23 | next ›
Discussion Overview
grouppgsql-hackers @
categoriespostgresql
postedMar 15, '04 at 7:22p
activeMar 17, '04 at 2:33a
posts23
users12
websitepostgresql.org...
irc#postgresql

People

Translate

site design / logo © 2021 Grokbase