[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ldup urp draft comments



Here's some feedback on the URP draft...

1) At first I didn't realise why the distinguished-present and
   distinguished-not-present tags were needed.  There is a paragraph
   which explains this. But, I didn't really get it until I worked
   out the example I mailed out earlier.

2) In the Unique Identifier section it states that both the root and
   lost+found entries will have pre-allocated known UUIDs.  This 
   seems like an implementation detail.

3) The draft states that a replication log will maintaned. The LDUP
   architecture delibrately avoids saying how or where updates should
   be stored.  This is implementation defined.

4) I like the idea of creating a glue entry under the lost+found 
   entry to represent an entry that has been deleted and it's 
   children have become orphaned.  This make it much easier for
   the administrator to recover a whole subtree.

5) The document describes how each LDAP operation is broken down
   into primitives, and provides an algorithm for how each primitive
   is applied to the consumer.  But, I think there's some subtle
   things hidden in the code, which should be explained:

5a) The RenameEntry function assumes that if the entry has children
    that they will move with the parent and not stay where they are.
    I know this may sound odd... but in our server, and I think some
    others, this isn't actually a natural thing to do. Stating the
    obvious here might be the best thing to do.

5b) When an entry is moved or added to the Lost+Found container the
    CheckUniqueness function is called.  This renames the RDN if it's
    found to not be unique. From an implementation point of view it
    would be better to always rename the entry, because there's no
    need to do a search. This also leads into the next point.

5c) If CheckUniqueness changes the RDN then it progagates a rename
    primitive. If we always rename the entry (as in 5b) then I don't
    think this propagation is needed as the same collision will occur
    on all servers and they will all rename the entry to have the same
    name.

One general comment is that these algorithms support Out-Of-Order
replay of changes, which is good. But, if one were to implement
a server that only supported In-Order replay, then the algorithms
can be simplified. Perhaps we should make a note of this.

Overall an excellent document. Steven, Will you be revising the 
draft for the next meeting?  Some of the terminology in the text
doesn't fit with the architecture document. I can help here if
you want.

John