Re: [389-devel] Please review: Allow modrdn to move subtree and rename non-leaf node

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

 



Hi Andrey,

Thanks so much for reading through the design doc! My responses are in line...

On 01/14/2010 07:45 AM, Andrey Ivanov wrote:
Hi Noriko,

  Allow modrdn to move subtree and rename non-leaf node

    This patch includes
...
I've read your design and implementation guide. It is very detailed
and discusses a lot of questions in a rather comprehensive way. A lot
of uncertainties i had in the beginning of the document were resolved
at the end (for example, the "ancestorid investigation").


Here are some questions or remarks that i still do have after this reading:
Citation:
-------------------
This function entryrdn_index_read finds out the entry_id of the given
DN sdn. It starts from the suffix in the entryrdn index following the
child links to the bottom. If it is successful, the entry_is of the
target node is set to the address that the argument id points to.
-------------------

the previously used "entrydn" index and the corresponding function
needed just one step(?) to find out the entry id from it's dn. Several
steps are now needed with "entryrdn" index.
That's right.
You talk about an
expensive entry_id ->  dn conversion and you introduce the dn cache to
take care of it. However you don't mention the expensive conversion dn
->  entry_id (that was the role of entrydn.db4). As far as i understand
the standard entry cache should help this conversion? And maybe this
type of conversion is much less frequent than  entry_id ->  dn?
Yes and yes. That's my observation. If you have a dn (operations from clients always have it), the matched entry is retrieved from the database first, then put in the entry cache. As long as the entry cache holds the entry, dn -> entry_id will not be needed. On the other hand, entry_id -> dn is more engaged especially when you need to scan the primary db file id2entry.db4. That occurs on the unindexed search. Unindexed search is generally slow, but without dn cache, it'd be even worse...
It would be interesting to have an estimation of the performance loss
(or gain?) due to this new entryrdn index for typical read/search
operations - 3 to 5 levels of rdn in DIT... I think it can be done
with ldclt in a similar way you've done it for ancestorid index.
A very good idea. I'm going to run the tests and push the results to the wiki.
One can extend your investigation of ancestorid index further: while
we use entryrdn index is there still a need to maintain parentid
(numsubordinates, ancestorid)?  One of the points is that db2ldif
needs the parentid attribute when the indexes are corrupted, but does
it really need the _index_ parentid? I think db2ldif reads the entries
directly from id2entry?
Another good point. I'm adding them to the ToDo list. As you suggested, we may be able to eliminate the parentid index. Numsubordinates may not be (just my initial guess, though...)
The questions concerning the interaction with other components of the server :
some of server plug-ins assume that modrdn changes only the rdn part.
These plug-ins will be broken. One of them is the
referential integrity plug-in - it takes for granted that only the rdn
part changes (update_integrity(argv, dn, newrdn, logChanges)).
Other possible candidates are memberOf, linked attributes plug-ins,
maybe some others. entryusn?

Are there any repercussions on replication protocol and mechanism?
I ran the test suite that covers these functionalities. So far, I haven't seen any breakage. But I might be missing something important, so your reviews would be greatly appreciated.

BTW, I've updated the patch at http://nhosoi.fedorapeople.org/0001-Allow-modrdn-to-move-subtree-and-rename-non-leaf-nod.patch . It's sync'ed with the latest commit and it mentions about another new API slapi_dn_syntax_check. - slapi_dn_syntax_check by nkinder@xxxxxxxxxx is added to check the dn befor modify operations

Thanks,
--noriko

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

--
389-devel mailing list
389-devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/389-devel

[Index of Archives]     [Fedora Directory Announce]     [Fedora Users]     [Older Fedora Users Mail]     [Fedora Advisory Board]     [Fedora Security]     [Fedora Devel Java]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Mentors]     [Fedora Package Review]     [Fedora Art]     [Fedora Music]     [Fedora Packaging]     [CentOS]     [Fedora SELinux]     [Big List of Linux Books]     [KDE Users]     [Fedora Art]     [Fedora Docs]

  Powered by Linux