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>