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;