Description of the Journaling topology

Matthew Dillon dillon at apollo.backplane.com
Fri Dec 31 00:11:11 PST 2004


: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 at xxxxxxxxxxxxx>





More information about the Kernel mailing list