Re: WAL write of full pages

From: Shridhar Daithankar <shridhar(at)frodo(dot)hserus(dot)net>
To: Dennis Haney <davh(at)diku(dot)dk>
Cc: PostgreSQL-development <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: WAL write of full pages
Date: 2004-03-16 14:22:31
Message-ID: 40570DA7.10100@frodo.hserus.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Dennis Haney wrote:

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

That is what postgresql calls as WAL(Write Ahead Log).

The issue here is that WAL itself could become bottleneck since it is hit very
frequently with heavy load. So how do we speed up WAL itself.

Shridhar

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Dave Cramer 2004-03-16 15:07:55 Some one deleted pg_database entry how to fix it?
Previous Message Dennis Haney 2004-03-16 14:14:48 Re: WAL write of full pages