adamwill / 389-ds-base

Forked from 389-ds-base 4 years ago
Clone

6f87fab Ticket 49873 - Contention on virtual attribute lookup

Authored and Committed by tbordaz 5 years ago
    Ticket 49873 - Contention on virtual attribute lookup
    
    Bug Description:
    	During lookup of the virtual attribute table (filter evaluation and returned attribute)
    	the lock is acquired many times in read. For example it is acquired for each targetfilter aci and for
    	each evaluated entry.
    	Unfortunately RW lock is expensive and appears frequently on pstacks.
    	The lock exists because the table can be updated but update is very rare (addition of a new service provider).
    	So it slows down general proceeding for exceptional events.
    
    Fix Description:
    	The fix is to acquire/release the read lock at the operation level and set a per-cpu flag, so that later lookup
    	would just check the flag.
    
    https://pagure.io/389-ds-base/issue/49873
    
    Reviewed by: Ludwig Krispenz, William Brown (thanks !!)
    
    Platforms tested: F27
    
    Flag Day: no
    
    Doc impact: no
    
        
file modified
+1 -0
file modified
+69 -13