From: Tom Lane <tgl@sss.pgh.pa.us>
To: James Mansion <james@mansionfamily.plus.com>
Cc: Greg Smith <greg@2ndquadrant.com>
Cc: Kevin Grittner <Kevin.Grittner@wicourts.gov>
Cc: Bruce Momjian <bruce@momjian.us>
Cc: jd@commandprompt.com, Scott Marlowe <scott.marlowe@gmail.com>
Cc: Steve Crawford <scrawford@pinpointresearch.com>
Cc: pgsql-performance@postgresql.org, Ben Chobot <bench@silentmedia.com>
Subject: Re: BBU Cache vs. spindles
Date: Thu, 28 Oct 2010 17:26:17 -0400
Message-ID: <26348.1288301177@sss.pgh.pa.us> (raw)
In-Reply-To: <4CC9DE0F.50401@mansionfamily.plus.com>
References: <4CC04EA50200002500036C5E@gw.wicourts.gov>
<201010211935.o9LJZTM21744@momjian.us>
<4CC0513E0200002500036C68@gw.wicourts.gov>
<4CC3E8BF.4090409@mansionfamily.plus.com>
<4CC46479.2050206@2ndquadrant.com>
<16724.1287952819@sss.pgh.pa.us>
<4CC9DE0F.50401@mansionfamily.plus.com>
James Mansion <james@mansionfamily.plus.com> writes:
> Tom Lane wrote:
>> The other and probably worse problem is that there's no application
>> control over how soon changes to mmap'd pages get to disk. An msync
>> will flush them out, but the kernel is free to write dirty pages sooner.
>> So if they're depending for consistency on writes not happening until
>> msync, it's broken by design. (This is one of the big reasons we don't
>> use mmap'd space for Postgres disk buffers.)
> Well, I agree that it sucks for the reason you give - but you use
> write and that's *exactly* the same in terms of when it gets written,
> as when you update a byte on an mmap'd page.
Uh, no, it is not. The difference is that we can update a byte in a
shared buffer, and know that it *isn't* getting written out before we
say so. If the buffer were mmap'd then we'd have no control over that,
which makes it mighty hard to obey the WAL "write log before data"
paradigm.
It's true that we don't know whether write() causes an immediate or
delayed disk write, but we generally don't care that much. What we do
care about is being able to ensure that a WAL write happens before the
data write, and with mmap we don't have control over that.
regards, tom lane
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-performance@postgresql.org
Cc: tgl@sss.pgh.pa.us, james@mansionfamily.plus.com, greg@2ndquadrant.com, Kevin.Grittner@wicourts.gov, bruce@momjian.us, scott.marlowe@gmail.com, scrawford@pinpointresearch.com, bench@silentmedia.com
Subject: Re: BBU Cache vs. spindles
In-Reply-To: <26348.1288301177@sss.pgh.pa.us>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox