Date: Wed, 3 Nov 1999 09:44:35 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: Zhihui Zhang <zzhang@cs.binghamton.edu> Cc: Greg Lehey <grog@lemis.com>, freebsd-hackers@FreeBSD.ORG Subject: Re: Granularity of disk I/O Message-ID: <199911031744.JAA59898@apollo.backplane.com> References: <Pine.GSO.3.96.991103101211.19385C-100000@sol.cs.binghamton.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
:
:Thanks for your reply. I know that directory entries are physically
:prevented from crossing device block boundaries in order to ensure atomic
:update. If I write a directory file with a buffer (using some kind of
:multi-sector transfer) and do not know which sector within the buffer
:fails, what will the filesystem do?
:
:-Zhihui
All modern SCSI & IDE disks will remap sectors on write failures,
so unless the disk is totally hosed you don't have to worry about
this situation occuring. If the disk is totally hosed you will have
other problems to worry about.
Currently if a write fails the filesystem will retry it. The system
will remain internally consistent but if you reboot without the buffer
getting successfully written to the disk then the disk will wind up
with some corruption and have to be recovered with fsck.
From the system's point of view, there is no difference in reliability
between doing a single sector transfer and a multi-sector transfer
except for the size of the retry. Since retries do not occur very often
nobody really cares how big the retry is. Since there is a huge
performance gain doing multi-sector transfers, that is what the
system does.
-Matt
Matthew Dillon
<dillon@backplane.com>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199911031744.JAA59898>
