Re: BBU Cache vs. spindles

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 29 Oct 2010, James Mansion wrote:

Tom Lane wrote:
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

Well, I don't know where yu got the idea I was refering to that sort of thing - its
the same as writing to a buffer before copying to the mmap'd area.
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

Which is what I was refering to.
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.


I think you have just the same control either way, because you can only force ordering with an appropriate explicit sync, and in the absence of such a sync all bets are off for whether/when each disk page is written out, and if you can't ensure that the controller
and disk are write through you'd better do a hardware cache flush.too, right?

A shame that so many systems have relatively poor handling of that hardware flush.

the issue is that when you update a mmaped chunk of data, it could be written out immediatly without you doing _anything_ (and thanks to multiple cores/threads, it could get written out while you are still in the middle of updating it). When you update an internal buffer and then write that, you know that nothing will hit the disk before you issue the write command.

David Lang

--
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance


[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux