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)