I've been working on metadata backend that would use tdb (meta_tdb). It's
advantages over meta_fs include:
- proper handling of "metadata" named files and dirs,
- compactness (no directory/files structure overhead and storing data in
Performace is yet to be tested extensively and compared to meta_fs.
There are also additions to humfs features:
- humfs stores file/dir access modes now (fixes some chmod problems),
- humfs automatically initializes mount dir if only valid "superblock" file is
present in it (no other files, new humfsify is not yet ready ;),
Example "superblock" is attached. To try meta_fs backend with it just change
"tdb" to "shadow_fs". To mount humfs:
mount none <uml mount dir> -t humfs -o <host dir>
The patch is against UML release ver. 2.4.26-1. This release is of beta
quality (should mostly work ;), but please note:
- database format is subject to change (right now db keys may collide, though
it is very unlikely, I coded new fixed structure but it's not fully debugged
- meta_tdb does not support unmouting and remounting (since metadata unmount()
method is not called by humfs, this is no issue for meta_fs becose of the way
The patch is also available here:
This version should be pretty close to final. I hope Jeff Dike will include it
in the next 2.4 UML release.
- tdb keys are now safe not to ever collide,
- Humfs now supports unmounting (that makes meta_tdb fully operational),
- fixed some bugs.
Simple program to list metadata from tdb file is included (tdbfsck).
Metadata structure kept in tdb may still change in an uncompatible way.
Patch also available at:
ps. Thanks to Oleg Drokin for reviewing my code.