[openbeos] Re: FS attributes

  • From: "Alexander G. M. Smith" <agmsmith@xxxxxxxxxx>
  • To: openbeos@xxxxxxxxxxxxx
  • Date: Sun, 06 Jan 2002 17:57:36 EST

Jeremy Powers <jpowers@xxxxxxxxxx> Sun, 06 Jan 2002 14:39:01 -0800:
> This is one thing that has bugged me about BeOS (I won't get
> started on Windows...).  How hard is it to make the reported
> file size include the size of all attributes?

Not too hard.  The trouble is that some older software will break
when the file size doesn't match the amount of data it reads.  But
it could be done relatively easily in OpenTracker so that the GUI
display of the file size includes attributes (but it would have to
scan the attribute list for each file to add up the attribute sizes,
which will make it slightly slower).

> How neccesary for FS implimentation is the reliance on one main
> data stream?

Oddly enough I was discussing this sort of thing in the ReiserFS this
weekend.  With objects instead of files, the attribute for the former
data would only be there (perhaps given an attribute name like
"default-data") for backwards compatability for software which
opens the file/object using the old APIs (essentially not specifying
the attribute name).  For that matter, attributes are essentially files,
they have a size and a name, plus they have a primitive attribute
data type (int-32, double, string, etc).  Objects (the new "file")
would be like a mini-directory containing attributes.  We also thought
of having sub-objects (subdirectories), a unique ObjectID and an
indexing system for finding things by ObjectID and by attribute
values (same as BeOS).  Plus, you can convert a file/object into an
XML hunk of data and vice versa via reading or writing to a magic
virtual attribute.  The latest idea is to keep the objects in XML
form if they aren't in use, and that would also let programs suck
in a small object in XML (reading the virtual attribute) rather than
doing file system traversals and so on.  We also came up with a better
way of doing query evaluation - make the indices appear as directories
and have change notification drive the query engine, which would now
be in a user level library (so that you could use different query
languages if you wished, and that file system writers don't have to
make their own query engine).

- Alex

Other related posts: