The BeOS file system, an OS geek retrospective (2018)
arstechnica.com
arstechnica.com
Now that's wisdom.
I imagine the extended attrs and db would be amazing for app devs, but probably wouldn't see much use in the real world because it ties your application to the file system. But what else?
Doesn’t seem much worse than tying it to a particular database or API
what remains is that the difference between a filesystem and a database is the API used to talk to it.
Storing and retrieving the attributes is the hard part that requires filesystem support, I think generating and searching the index pretty trivial once you have that. A quick index you can grep is a oneliner on Linux, something like getfattr -R /music -m genre > index.db
I don't think anyone is currently using extended attributes like this, so there is no standard pattern. The question was about whether other filesystems can do this, and the answer is yes - basically all modern filesystems.
I guess people have decided they don't think storing this metadata in the filesystem is best place (I don't know why, perhaps because it's complicated to copy the metadata when you email the files to someone else?).
The answer is it's not atomic, it's another system tacked on the side. The filesystem information and your index can and would get out of sync. You also can't safely access that from several programs simultaneously.
> I don't think anyone is currently using extended attributes like this, so there is no standard pattern.
They were under Be.
> The question was about whether other filesystems can do this, and the answer is yes - basically all modern filesystems.
No, no other filesytems I know will index off of attributes. Your example doesn't even index. It just writes everything to a file, and on updates has to rewrite the whole file, and searches have to iterate through the whole file. It does not do the same things the Be filesystem does, where the attributes get their own b-trees in the filesystem itself. The closest thing would be to load a database as a filesystem.
You'll have to explain it in more detail, if a file changes then the content has to be re-analyzed and the attribute updated to reflect that.
> It does not do the same things the Be filesystem does, where the attributes get their own b-trees in the filesystem itself.
Sure, but you can import them into a sqlite database, it's pretty simple.
You're right, the index wouldn't be atomic in that sense.