9c36be0 Ticket 505 - use lock-free access name2asi and oid2asi table

Authored and Committed by lkrispen 8 years ago
    Ticket 505 - use lock-free access name2asi and oid2asi table
    
    Bug Description: there is a high contention on the attr syntax locks
    		 triggered by syntax lookups for attribute types
    
    Fix Description: this fix does not provide a lock free hash table or change
    		 in the hash table implemenmtation. It addresses the issue by
    		 reducing the syntax lookups as far as possible.
    		 syntax lookups are either done at attribute initialization
    		 or during dn normalization when is_dn_syntax is checked.
    		 The areas changed are:
    		 - attribute initialization from str2entry_fast. The syntax fields
    		   are not initialized, this is done on demand when a_*plugin or a_flags
    		   is used.
    		   This allows the removal of the hashtable lookups and the global lock
    		   in str2entry_fast
    		 - reduce dn normalization. When reading an entry from the database
    		   all attributes with dn syntax are already normalized. No check cor
    		   dn syntax and dn normalization required
    		 - reuse srdn. In entryrdn_lookup_dn a Slapi_RDN is built from the entryrdn
    		   index, this can be reused to initialize the rdn of the entry, no
    		   further dn explode or normalize required.
    
    https://fedorahosted.org/389/ticket/505
    
    Reviewed by: nhosoi (Thanks Noriko)
    
        
file modified
+57 -0
file modified
+17 -0
file modified
+21 -11