big flash disks?

Jamie Lokier jamie at shareable.org
Tue Jun 3 14:56:59 EDT 2008


Jörn Engel wrote:
> On Mon, 2 June 2008 13:48:22 +0100, Jamie Lokier wrote:
> > 
> > The basic idea is for a pointer in a tree node to point not to one
> > child, but to a small set of potential children.  The child-set are a
> > journal in the jffs2 sense.  When reading, you read each block of the
> > child-set, and pick the most recent.  This slows down reading, but
> > reduces the amount of writing.  You still read in O(log tree_size)
> > blocks, and since most of the extra reads are hot-cache internal tree
> > blocks, the amount of extra reading is quite small.  Child-sets can
> > overlap to reduce storage duplication, at cost of more operations -
> > it's a heuristic balancing act.  Child-sets are not used for all tree
> > nodes, especially data.  They can be invoked and destroyed dynamically
> > using heuristics to detect some parts of the tree undergoing lots of
> > write+sync sequences and others being coalescable writes or not
> > written.
> 
> This is actually a good explanation of the logfs journal. :)

Oh.  Great, cheers.  Great minds think alike :-)

If that's the logfs journal - why would extra static tree depth near
the root add any write-commit overhead as you said in the grandparent
post? :-)

(Btw, I thought a difference between logfs and ubifs is the latter
does async writes?  Or do they both?)

-- Jamie



More information about the linux-mtd mailing list