DragonFly BSD
DragonFly kernel List (threaded) for 2004-12
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Description of the Journaling topology


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Fri, 31 Dec 2004 00:10:20 -0800 (PST)

:This is potentially dangerous.  In general, I think you want the 
:journalling to occur as close to the storage as possible -- i.e., on the 
:*target* machine, not the originating machine.
:
:The scenario I'm thinking of -- one not too uncommon when running 
:unwieldy makefiles -- is as follows: (A and B are NFS clients, T is the 
:NFS server):
:
:A: rmdir() called
:A:   rmdir() journalled
:A:   rmdir() sent to server
:T: directory is removed
:A: crashes
:B: mkdir() called on same directory
:B:   mkdir() journalled
:B:   mkdir() sent to server
:B:   mkdir() journal marked as complete.
:T: directory is created
:[a day later...]
:A: reboots, starts replaying journal
:A:   rmdir() sent to server
:A:   rmdir() journal marked as complete.
:T: directory is removed
:
:Thus, one rmdir() call ends up being called twice.  Or am I missing 
:something?

    Well, in this scenario A and B would not be doing the journaling, the NFS
    server would be doing the journaling.   The act of journaling is not 
    something you run independantly on N machines all sharing the same
    NFS based filesystem.  That would never work.

					-Matt
					Matthew Dillon 
					<dillon@xxxxxxxxxxxxx>



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]