I should create an example. Wherever I used True Name previously, use OID instead. True Name was simply another term for a unique object identifier.
Three files with OIDs of 1001, 1002, and 1003. Object 1001: name: /tmp/A/file1 name: /tmp/A/B/file1 name: /tmp/A/B/C/file1 Object 1002: name: /tmp/A/file2 Object 1003: name: /tmp/A/B/file3 Three query objects (directories) with OIDs of 1, 2, and 3. Object 1: name: /tmp/A name: /tmp/A/B/C/A query: name begins with /tmp/A/ query result cache: B->2, file1->1001, file2->1002 Object 2: name: /tmp/A/B query: name begins with /tmp/A/B/ query result cache: C->3, file1->1001, file3->1003 Object 3: name: /tmp/A/B/C query: name begins with /tmp/A/B/C/ query result cache: A->1, file1->1001 Now there is a A -> B -> C -> A directory loop. But removing name: /tmp/A/B/C/A from Object 1 fixes the loop. Deleting Object 1 also fixes the loop. Deleting any of Object 1, 2 or 3 does not affect any other object, because in this scheme, directory objects do not need to actually exist: they are just queries that return objects with certain names. One problem I already see with it is that there is no way to enforce the Unix "x" permission without real directory traversal. But I never liked that anyway. :) Are there other problems with it? Did I explain it clearly? On Tue, 2005-05-31 at 11:27 -0700, Hans Reiser wrote: > Well,. if you allow multiple true names, then you start to resemble > something I suggested a few years ago, in which I outlined a taxonomy of > links, and suggested that some links would count towards the reference > count and some would not. > > Of course, that does nothing for the cycle problem...... > > How are cycles handled for symlinks currently? > > Hans > > Jonathan Briggs wrote: > > >Either that isn't allowed, or it immediately vanishes from all > >directories. > > > >If deleting by OID isn't allowed, then every name property must be > >removed in order to delete the file. > > > >Personally, I would allow deleting the OID. It would be a convenient > >way to be sure every instance of a file was deleted. > > > >On Tue, 2005-05-31 at 09:59 -0700, Hans Reiser wrote: > > > > > >>What happens when you unlink the True Name? > >> > >>Hans > >> > >>Jonathan Briggs wrote: > >> > >> > >> > >>>You can avoid cycles by redefining the problem. > >>> > >>>Every file or "data object" has one single True Name which is their > >>>inode or OID. Each data object then has one or more "names" as > >>>properties. Names are either single strings with slash separators for > >>>directories, or each directory element is a unique object in an object > >>>list. Directories then become queries that return the set of objects > >>>holding that directory name. The query results are of course cached and > >>>updated whenever a name property changes. > >>> > >>>Now there are no cycles, although a naive Unix "find" program could get > >>>stuck in a loop. > >>> > >>> > >>> > >>> > -- Jonathan Briggs <[EMAIL PROTECTED]> eSoft, Inc.
signature.asc
Description: This is a digitally signed message part