directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel L├ęcharny <>
Subject Re: Alias cycle detection
Date Tue, 14 Jun 2011 13:38:35 GMT
On 6/14/11 3:26 PM, Stefan Seelmann wrote:
>> There are a few steps we also have to fulfill :
>> - create an Alias cache ( I thought we had one, but in fact, we have the
>> opposite : a notAliasCache in the ExceptionInterceptor)
> I wonder why we need an alias cache? For fast lookup of the search
> base in case the "find" bit is set?
Good point... As soon as we fetch an alias, we just have to check its OC 
to see if it's an alias, or not.
>> - create an AliasInterceptor to manage the Add and Delete operations done on
>> alias entries (and also move, rename and combined ops)
> You mean that interceptor is used to update the cache, right?
Right. But if we don't need a cache, we don't either need this interceptor.

I will keep it atm to insolate the search filter in charge of detecting 
the cycle.
>> The Alias index removal will be done at the end.
> Ok.
> Two other issues I see with the new algorighm:
> - It is efficient if there are only few aliases. But if a user adds
> million of alias entries we may get a memory problem.
If a user adds millions of Alias entries, he will have issues with any 
LDAP server, I guess. And it's very unlikely to happen...

What we can do is to decide that we don't check for cycle once we have 
more than, say, 10 aliases in the search alias cache.

>   I just want to
> mention that to make clear that such an issue may occur. I don't think
> it makes sense to create so many alias entries, but I saw an example
> where group membership was implemented using aliases...
Make sense.

> - It is possible that duplicates occur, for example if an alias
> enlarges the initial search scope by pointing to a parent of the
> initial search base. I think duplicates can be avoided by tracking
> each search base and filter result enties within already processed
> search bases.
Duplicate should not occur if we store the root DN  in the search alias 
cache : we will meet it at some point if the alias point to a parent.

Thanks for your feedback, it's very valuable.

Emmanuel L├ęcharny

View raw message