I still don't see a problem, I'm unlikey to want to use tar on a virtual filesystem, I'd be better off grabbing a snapshot of the real data. Plus, the tar question is only relevent to files but in the scheme above the symlinks are always to directories. But as I said, this is not an interface that is particularly suitable to mass queries or updates, the tools one might use would not need to know anything about symlinks at all, for example
as a handy way of doingperl -pi -e '$_=capitalise($_)' persons/*/name
on a database without stored procedures or where I'm much more familiar with perl than with stored procedures.update persons set name = CAPITALISE(name);
Mainly though I think it works best as an exploratory tool and that just requires following the symlinks to wherever they go.
As for the tree/graph problem. If my data forms a directed graph then I don't see any problem. If the graph has cycles, then I want to see those cycles. Symlinks make that easy and if my data has cycles then my tools will have to know how to deal with that, whether they access it through an SQL interface or a filesystem.
We'd do much better if we had filesystems that operated as a generalized set instead of a strict tree.
I agree, although I'd imagine that we'll still be accessing those filesystems as trees. The difference will be that the tree structure will be dynamically created from the database.
For a long time now, I've wanted to be able to do this
This is still a tree, the fact that the node "language=/perl/format=/rpm" has the same contents as the node "format=/rpm/language=/perl" doesn't make a difference, just as 2 nodes in a tree can contain the number 7.> cd software > ls glibc.rpm DBI.rpm DBI.tgz DBD::mysql.rpm DBD::mysql.tgz author=/ format=/ language=/ ... > ls format= rpm/ tgz/ ... > ls format=/rpm glibc.rpm DBI.rpm DBD::mysql.rpm language=/ author=/ ... > ls format=/rpm/language=/perl DBI.rpm DBD::mysql.rpm ... > ls language=/perl DBI.rpm DBI.tgz DBD::mysql.rpm DBD::mysql.tgz ... > ls language=/perl/format=/rpm DBI.rpm DBD::mysql.rpm ...
The truth is that trees are one of the best interfaces we have, in fact I can't think of any other good way of presenting a set of files (assuming the set of files is too large to just present as a list). It's also a pretty good way of storing the files on disk. The problem comes when you insist that the tree that's presented to the user sees must be the same as the tree stored on disk.
In reply to Re^5: RFC: Fuse::DBI - mount database as filesystem
by fergal
in thread RFC: Fuse::DBI - mount database as filesystem
by dpavlin
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |