[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: e2find: new ext2/3/4 tool for fast directory entry iterations



* Vincent Caron <vcaron bearstech com> hat geschrieben:

> Since I'm in userland and not locking
> any on-disk data structure I'm reading, I wonder what kind of suprises I
> should expect in the retrieved data.

Exactly that kind of surprises, you're expecting anyways: Old data
where committed data exist that has not been written to it's
target location yet or data, that has been overwritten in mean time. Since
there is almost no restriction on the "wrong" data (could be mp3, could be
part of a ext2 image file looking exactly like the data you're expecting
to see - no way to know for sure) you can see *anything*.

For an ext2 fs with journal, you could try interpreting the journal and
fixup your cache to bring it up to date like this:

1. Get a copy of the journal
2. Read the blocks you're interested in (i.e. do the normal traversing
   step).
	-> from time to time, get a new copy of the journal, check what
	changed, process the changes. This also means, you need to keep
	some meta data about when and where you got your data from, so you
	can actually fixup stuff. Remember: While traversing, you can read
	any kind of trash.
3. Upon completion of 2. get a final copy of the journal to bring
   your cache up-to-date.

The funny thing about this aproach: By repeating step 3 you could keep
your cache up to date without any need of retraversing the file system at
any time again as long as your check interval is short enough so you don't
miss any journal updates.

I leave the details to you're implementation skills, since I don't know
what your strategies in e2find are.

Regards, Bodo


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]