On Mon, Aug 31, 2009 at 03:50:33PM -0600, Kevin Van Maren wrote: > Nicolas Williams wrote: > >Client death with dirty data is not all that different from process > >death with dirty data in user-land. Think of an application that does > >write(2), write(2), close(2), _exit(2), but dies between writes. > > It is very different; with a user application crash, all the writes to > that point will be completed by the kernel.
But not writes that the application hasn't done yet but which it was working on putting together at the time that it died. If those never- done writes are related to writes that did get made, then you may have a problem. For example, consider an RDBMS. Say you begin a transaction, do some INSERTs/UPDATEs/DELETEs, then COMMIT. This will almost certainly require multiple write(2)s (even for a DB that uses COW principles). And suppose that somewhere in the middle the process doing the writes dies. There should be some undo/redo log somewhere, and on restart the RDBMS must recover from a partially unfinished transaction. _______________________________________________ Lustre-discuss mailing list [email protected] http://lists.lustre.org/mailman/listinfo/lustre-discuss
