Looking good Dave! Thanks for writing this up, it made for some
interesting lunch time reading. ;)
Here's a few typos I noticed, marked 'em up as I read along...
> +required for objects that are frequently logged. Parts inodes are
"Some parts of ..."?
> +The limitation on asynchrnous transaction throughput is the number
> +Effectively, this gives us the maximum bound out outstanding metadata
"out" -> "of"
> +formating the changes in a transaction to the log buffer. Hence we
> +One of the key changes that delayed logging makes to the operation of
> +journalling subsystem is that is dissociates the amount of
"is" -> "it", and "disassociates" (or maybe "dissociates" is what you
meant, you chem freak you. ;)
> +recovered filesysetm is concerned, there may be many thousands of
> +This introduces lots of scope of deadlocks with transactions that are
"scope for deadlocks"?
> +The solution is relatively simple - it just a long time to recognise
"took a long time"
> +rewrite the vector addresses to point at the memory buffer we end up
"and rewriting the"
> with a
> +self-describing object that it can be passed to the log buffer write
"that can be"
> is entire
> +arbitrary and done to make it easy for debugging - the last items in
> +crash during the write of a such a transaction could partially
> overwrites the
> +format structure. That is, two vectors totalling roughly 150 bytes.
> +the write reservation (the actual space availble to the transaction)
> +checkpoint commit to complete. This background push checked and
> executed by transaction commit code.
> +log item completion. THe result of this is that pinning and unpinning
> +are entered and completed is the object considered clean.`
Spurious "`" there?
> + => gain confidence and fix problems reported by early
> + adopters (a.k.a. guinea pigs)