Re: journaling filesystem

Mark H. Wood (mwood@mhw.OIT.IUPUI.EDU)
Fri, 15 May 1998 13:03:23 -0500 (EST)

On Wed, 13 May 1998, Albert D. Cahalan wrote:

> Pierre Phaneuf writes:
> > On AIX, the journal is kept on a separate journal device, which is
> > common to all the mounted filesystems. I think this is a good idea,
> > since unmounted filesystems (or those mounted read-only) don't need
> > journal space.

I believe that OpenVMS does it this way too.

> This has many advantages.
> 1. does not harm compatibility with existing filesystems & kernels
> 2. can put the log on a tape
> 3. can put the log in non-volatile RAM
> 4. can use one fast disk as the log for a dozen slow disks
> 5. can run multiple logs for redundancy
> Point #3 would allow for some impressive TPC and NFS benchmark
> scores, without even breaking the benchmark reporting rules.
> If you put the log on tape and started a second tape before the
> first one finished, you could keep changing tapes. You'd end up
> with a huge tape library that has a log of every filesystem change
> ever made. Add timestamps and user IDs for a solid audit trail.

IIRC, financial OLTP systems do exactly that. You plug in four tape
drives. Each transaction gets written to two tapes. When a tape fills
up, it starts unloading and the transaction monitor switches to one of the
drives that isn't busy. (Actually the OS probably does that bit.) An
operator request goes out to dismount the rewinding tape and mount a fresh
one that the system has selected from the scratch pool. As long as the
operator stays awake and the tape manager doesn't run out of scratch
volumes, you never pause and you never lose a committed transaction.

If you're gonna do a journalling system, then, there are two ideas to
consider: (1) duplicate logging, and (2) logging to arbitrary block

Mark H. Wood, Lead System Programmer   mwood@IUPUI.Edu
Nothing is so dangerous as being too modern.  One is apt to grow old-fashioned 
quite suddenly.  -- Oscar Wilde

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to