e6fd70b Ticket 512 - improve performance of vattr code

Authored and Committed by tbordaz 10 years ago
    Ticket 512 - improve performance of vattr code
    
    Bug Description:
    	The first part of the fix was incompleted, breaking fix #490.
    	The problem was that when an entry had no cached virtual attribute, we continued
    	to call the SP. In fact the cache mechanism supported only one virtual attribute (nsroledn)
    	and used the 'watermark' (in the entry) to know if the virtual attribute was already evaluated.
    	Now the virtual cache contains several attributes and we can not rely on only watermark to
    	know if the attribute was already evaluated.
    
    Fix Description:
    	The fix implements a cache containing all the virtual attributes.
    	If a virtual attribute is evaluated, its value is store in the cache.
    	This even if the present value of the attribute is NULL (no Service Provider gave a result).
    	The meaning of the watermark returns to its origin: it says if the cached virtual values are or not valid
    	(a change in SP triggers invalidation of the cache).
    
    https://fedorahosted.org/389/ticket/512
    
    Reviewed by: Ludwig Krispenz,Rich Megginson
    
    Platforms tested: F18
    	cos/roles acceptance
    	#490 test case (test integrated in 389 CI tests https://github.com/tbordaz/dirsrvtests)
    	#512 test case
    
    Flag Day: no
    
    Doc impact: no
    
        
file modified
+233 -92
file modified
+2 -1
file modified
+0 -16