Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site crystal.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!uwvax!crystal!shekita
From: shekita@crystal.UUCP
Newsgroups: net.unix-wizards
Subject: disk-block integrity after system crashes
Message-ID: <486@crystal.UUCP>
Date: Fri, 12-Jul-85 01:01:54 EDT
Article-I.D.: crystal.486
Posted: Fri Jul 12 01:01:54 1985
Date-Received: Sat, 13-Jul-85 12:13:09 EDT
Distribution: net
Organization: U of Wisconsin CS Dept
Lines: 29

The problem is this: We have a database file system that
sits on a Unix raw disk. Our current goal is to add recovery
to the database. In order to do this we need to know some
things about disk controllers.

Suppose a write operation is initiated (i.e., the controller
begins processing the write request) and a system crash
occurs. 

1) Will the write finish? It seems that it shouldn't, since
   RAM will probably get flakey as power drops, and then
   a block of garbage will get written to disk.

2) If the write doesn't finish, will the block be detectably
   bad? For example, would the block's CRC be wrong, causing
   the controller to return an error on subsequent reads.

In essence, we'd like to know if a block write can be considered
atomic, and if it's not atomic, we'd like to know if there's
a way to detect whether the write was interrupted and/or whether
garbage got written.

Granted, the answers to these questions will be device dependent,
but we (unfortunately) seek general information. Any particular
expertise that you could share would certainly be useful, though.
Incidently, we currently run on an Eagle drive.
			Eugene Shekita
			Computer Science Department
			University of Wisconsin