safe flash filesystem

Chris Read chris.read at clrassociates.co.uk
Thu Jun 21 11:36:27 EDT 2001


I would also be very interested in this.

The ability to retain consistency after multiple power outages
is crucial to many of the types of project upon which I work.

The problem can be quite complex if you get a power fail in a garbage
collection started as a result of a power fail during a previous GC.

Chris Read
CLR Associates Limited

> -----Original Message-----
> From: linux-mtd-admin at lists.infradead.org
> [mailto:linux-mtd-admin at lists.infradead.org]On Behalf Of Vipin Malik
> Sent: Thursday, June 21, 2001 4:05 PM
> To: Abraham vd Merwe
> Cc: MTD for Linux
> Subject: Re: safe flash filesystem
> 
> 
> 
> >
> >That's exactly what I've started writing today (:
> 
> Have you written a spec for it?
> 
> >I don't know if merging something like this with jffs2 would 
> solve the
> >problem like you said. I was more thinking of a completely 
> different user
> >MTD driver to provide an uncached block device and slap a 
> file system on top
> >of that. Or we can sync() all the time from the file system.
> 
> Nooooo.... ;)
> 
> JFFS2 already provides for:
> 
> 1. Interface to MTD
> 2. Flash wear levelling
> 3. Compression/decompression on the fly
> 4. "always sync()" data to flash before your write() returns 
> functionality
> 5. handling of erase paritions, GC, a file system interface etc.
> 6. tested for power fail reliability of the fs metadata.
> 7. Extensive usage by others even if they do not need this (our) 
> functionality- hence minimal hidden bugs.
> 
> My initial feel is that I really don't think that reinventing 
> the wheel is 
> the right answer.
> What we need is a "layer" on top of JFFS2 to provide the 2 
> features that it 
> lacks. Namely:
> 
> 1. Roll back and recover to last data if your write did not 
> complete and 
> power failed
> 2. 0 latency writes. Reads are no problem as they can always 
> be cached in 
> memory by reading the entire (it's not a database) database 
> on startup.
> 
> Alan Cox called this "transactional level" functionality.
> 
> An implementation based on a transaction cache solves the 
> issue of having 
> to duplicate all the members and CRC them thus supporting 
> quite a large 
> database without the need for twice the space on the flash 
> device, as well 
> as the issue of "roll back and recover" or "complete 
> transaction" on the 
> next power up if the complete transaction is available. There 
> is a reason 
> that transactional logs are the preferred choice even for 
> large databases 
> that need to support fail safe.
> 
> 
> >I have to agree that it's probably better to write a 
> library/utilities first
> >to do a preliminary thing. That way we'd get a functional 
> thing quite fast
> >and figure out what we did wrong in the first place.
> 
> My thoughts exactly.
> 
> 
> > > Maybe you may want to subscribe to the development list on the
> > > www.EmbeddedLinuxWorks site and we can take this 
> discussion there. I am
> >
> >Where do I subscribe?
> 
> http://www.embeddedlinuxworks.com/lists.html
> 
> 
> 
> > > looking for user input to define the feature set of this 
> "config system"
> > > (not database :) And I want to make it LGPL (if it does 
> become a lib or
> > > task) so that users can link to it without releasing the 
> source of their
> > > own code.
> >
> >I'm in the fortunate position of being able to work on this 
> fulltime for
> >the next week or so, so if we can figure out a useful 
> specification for this
> >in a short time, I'm really keen on helping to implement 
> this and LGPL/BSD
> >license is just fine.
> 
> That suits me just fine. We need to start working on a spec 
> first. Maybe a 
> clearly defined requirement spec, then a design document. If 
> you like I can 
> elaborate on the above thoughts a bit and start something- or 
> feel free to 
> send me something if you like.
> 
> 
> > > I can't believe that you and I are the only folks that may be 
> > interested in
> > > this. Maybe there is an existing solution- we just don't 
> know about it- or
> > > other's have not thought about this issue just yet ;)
> >
> >That's why I mailed here in the first place :P
> 
> 
> But I haven't heard from anyone else yet :(
> 
> Regards,
> 
> Vipin
> 
> 
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/




More information about the linux-mtd mailing list