On 6/15/11 11:21 AM, Howard Chu wrote:
Alex Karasulu wrote:
On Mon, Jun 13, 2011 at 5:39 PM, Emmanuel Lecharny<[email protected]> wrote:
Alias cycle detection
---------------------

There is an unsolved question about how we should detect Alias cycles. Right now, we check for cycles *before* they are created. The alternative would be
to stop any search that could lead to an infinite loop.

That would slow down reads. The best is to stop this from happening
with write operations: meaning doing the computation to detect and
prevent the cycle then and there instead of exhausting the search
process to deal with such wicked constructs.

You may be being over-paranoid here. First a client has to explicitly request alias dereferencing and most of them don't by default,
Actually, they do. The default for people using JNDI is to Deref Always.(http://download.oracle.com/javase/jndi/tutorial/ldap/misc/aliases.html) ("When you use Sun's LDAP service provider, you can control how aliases are dereferenced in one of four ways, by using the "java.naming.ldap.derefAliases" environment property, as shown in the following table. If this environment property is not set, then the default is "always".")
so in general reads will be unaffected. Also the DB operations required to detect a cycle at write time are the kinds of things you would already be performing efficiently in a search. Doing them at search time is far better from a concurrency perspective because you're only doing read operations inside a reader transaction, and nothing touched inside the DB needs to stay locked for long. If you're doing these searches during a write operation then you're going to accumulate huge numbers of locks that must be held until the write transaction commits.

And as I said in a previous mail, detecting cycle during search is probably totally unnoticeable, wrt performances.Of course, with millions of aliases, that would be a different problem, but in this case, I would likely tell the user to switch to another LDAP server :)



--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to