James A. Donald wrote: > James A. Donald wrote: >>> Everyone is happy to browse arbitrary >>> graphs. No one likes to manipulate arbitrary graphs. Engineers are >>> barely OK manipulating directed acyclic graphs. The rest of the >>> population are only going to manipulate trees, and if it is not a tree, >>> it is a bug. > > David-Sarah Hopwood wrote: >> A tree-structured filesystem is not implementable under the constraints >> that apply to a distributed system like Tahoe that supports fine-grained >> sharing of directories and files. > > As to whether it is implementable in tahoe, I cannot say, but it is > implementable in a system that supports fine grained sharing of > directories and files -
I didn't say that it wasn't -- note the restriction to distributed systems. > for sharing is browsing, rather than manipulation. "Browsing" is a user interface abstraction. "Sharing" means sharing references. They're not comparable. Manipulation (i.e. changing a mutable graph) has the same semantics and operates on the same structure, whether you do it with a browser interface, or a CLI interface, or programmatically. If cyclic links are supported (even if restricted to symlinks), then that structure is a graph, regardless of what is displayed by the user interface. In the distributed case where fine-grained sharing is supported, the structure *must* be a graph, again regardless of user interface. It is simply incorrect to say that it is easier to manipulate trees than to manipulate directed graphs. Tree structures are not closed under the operations of adding or removing child links to another arbitrary node. Most file browsers show trees for one or both of the following reasons: a) they're often descended from implementations in which the filesystem was a tree. (This is why Vista's file browser breaks when the user tries to browse a graph, for instance.) b) the paths explored by expanding any set of nodes starting from some root *is* a tree, even when the filesystem is a graph or when symlinks have been followed (and even if the same symlink has been followed more than once). By analogy, consider a maze with a single entrance: the paths explored from that entrance necessarily form a singly rooted tree (if you revisit a node without backtracking, that's the same point in space, but not the same point in the path). This is completely independent of the cycle structure of the maze. If there are multiple entrances then the paths explored form a forest. -- David-Sarah Hopwood ⚥ http://davidsarah.livejournal.com
signature.asc
Description: OpenPGP digital signature
_______________________________________________ tahoe-dev mailing list [email protected] http://allmydata.org/cgi-bin/mailman/listinfo/tahoe-dev
