You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2013/12/02 15:58:37 UTC
svn commit: r1547048 -
/directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultSearchEngine.java
Author: elecharny
Date: Mon Dec 2 14:58:37 2013
New Revision: 1547048
URL: http://svn.apache.org/r1547048
Log:
Added a alias cache to speed up searches
Modified:
directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultSearchEngine.java
Modified: directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultSearchEngine.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultSearchEngine.java?rev=1547048&r1=1547047&r2=1547048&view=diff
==============================================================================
--- directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultSearchEngine.java (original)
+++ directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultSearchEngine.java Mon Dec 2 14:58:37 2013
@@ -147,7 +147,27 @@ public class DefaultSearchEngine impleme
// --------------------------------------------------------------------
// Determine the effective base with aliases
// --------------------------------------------------------------------
- Dn aliasedBase = db.getAliasIndex().reverseLookup( baseId );
+ Dn aliasedBase = null;
+
+ if ( db.getAliasCache() != null )
+ {
+ Element aliasBaseElement = db.getAliasCache().get( baseId );
+
+ if ( aliasBaseElement != null )
+ {
+ aliasedBase = (Dn)(aliasBaseElement).getObjectValue();
+ }
+ else
+ {
+ aliasedBase = db.getAliasIndex().reverseLookup( baseId );
+ db.getAliasCache().put( new Element( baseId, aliasedBase ) );
+ }
+ }
+ else
+ {
+ aliasedBase = db.getAliasIndex().reverseLookup( baseId );
+ }
+
Dn effectiveBase = baseDn;
String effectiveBaseId = baseId;