Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Jan 2011 16:15:13 +0100
From:      =?UTF-8?Q?=C5=A0imun_Mikecin?= <numisemis@gmail.com>
To:        Jeremy Chadwick <freebsd@jdc.parodius.com>, freebsd-fs@freebsd.org
Subject:   Re: Write cache, is write cache, is write cache?
Message-ID:  <AANLkTi=YJacW9iG24Uf9Kfk8SeET6bkj2y_hO9aQHUcJ@mail.gmail.com>
In-Reply-To: <AANLkTi=K0xYJciWgtzTkMP-BhnOOfc5UeUgX--sCVLma@mail.gmail.com>
References:  <1ABA88EDF84B6472579216FE@Octa64> <20110122111045.GA59117@icarus.home.lan> <AANLkTik_rii-F_QWTP3OdyTS0gx1tDxv6--2LGGF6Ear@mail.gmail.com> <20110124144236.GA19500@icarus.home.lan> <AANLkTi=K0xYJciWgtzTkMP-BhnOOfc5UeUgX--sCVLma@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
2011/1/24 =C5=A0imun Mikecin <numisemis@gmail.com>

> 2011/1/24 Jeremy Chadwick <freebsd@jdc.parodius.com>
>
>> The term "flush" means many different things.  fsync(2), for example,
>> behaves differently on UFS than it does on ZFS.  People think that
>> "flush" means "guarantee the data written was written to disk", but
>> ensuring an actual ATA/SCSI command completes **and** has had its data
>> written to the platters is an entirely different beast (IMO) than "flush
>> kernel buffers to disk and hope for the best".
>>
>
> AFAIK, BIO_FLUSH should complete when data was written to disk (not
> before), or in the case of battery backed cache: when data was written to
> battery backed cache.
> AFAIK, ZFS doesn't only "flush kernel buffers" (like UFS does), but also
> executes BIO_FLUSH every X seconds (X=3D5 if my memory serves me well). S=
o,
> you shouldn't loose data that was written before BIO_FLUSH executed.
>
>    With single disks, all I've seen are read/write errors which can't be
>
>> repaired.  "zpool status" will actually show what files got affected as
>> a result of the issue, though sometimes "zpool scrub" needs to be run
>> before this can be detected.
>
>
> Adding redudancy does make your data safer, but if everything is working =
as
> explained, sudden power-loss shouldn't be the cause of those errors even
> with single disks. Correct me if you think that I'm mistaken.
>

Well, when I think more about it, those errors might be from writing to dis=
k
after last call to BIO_FLUSH. So you loose last 5 seconds at most. Not
something worth writing home about considering the performance advantage yo=
u
get by enabling write cache.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTi=YJacW9iG24Uf9Kfk8SeET6bkj2y_hO9aQHUcJ>