Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!umich!samsung!uunet!tut.cis.ohio-state.edu!snorkelwacker!bu.edu!xylogics!transfer!crackers!m2c!umvlsi!dime!yodaiken From: yodaiken@freal.cs.umass.edu (victor yodaiken) Newsgroups: comp.arch Subject: Re: Mixing paging and IO is inefficient (was Re: Compiler partions) Message-ID: <16450@dime.cs.umass.edu> Date: 5 Jul 90 02:59:56 GMT References: <499@garth.UUCP> <5660@titcce.cc.titech.ac.jp> <137770@sun.Eng.Sun.COM> <103@array.UUCP> Sender: news@dime.cs.umass.edu Reply-To: yodaiken@freal.cs.umass.edu (victor yodaiken) Organization: University of Massachusetts, Amherst Lines: 30 In article <103@array.UUCP> colin@array.UUCP (Colin Plumb) writes: >In article <137770@sun.Eng.Sun.COM> lm@sun.UUCP (Larry McVoy) writes: >>I'm really getting sick of this thread. Those who understand file system >>semantics dismissed this idea as flawed from the start. The synchronous >>nature of certain file system writes are *required* for file system >>reliability. ... >>If you must have a software solution now, I'm afraid that you are stuck with >>the tmpfs method of doing business. > >See "Reimplementing the Cedar File System Using Logging and Group >Commit", Robert Hagmann, Proc. 11th ACM Symp. on Operating Systems >Principles, also known as ACM Operating Systems Review vol.21 no.5 >(1987). You don't need extra hardware. >-- > -Colin Also see the paper by Borg et al 10th ACM Symp on O.S. on the Auragen Fault Tolerant Unix, and see the paper on hints for developers by Butler Lampson in the same proceedings (might be the 9th come to think of it). If you maintain a valid fs on the disk at all times, you can avoid synchronous writes and still maintain fs integrity. Auragen used a simple technique, the fs root block (super-block) was duplicated. Block A pointed to a safe version of the FS, block B was kept in memory, and on disk, using the free blocks of A for writing. When B was safe, i.e. when everything necessary was on disk, B wold be copied to A. If the system died while B was not safe, on reboot A would point to a safe fs, with new data written on its free list (where it would be ignored). Logging was also used to allow recovery. Detailed information on this fs is in a tech report that I might be able to find,if anyone is interested.