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