RFR JDK-7092821 "java.security.Provider.getService() is synchronized and became scalability bottleneck"

Sean Mullan sean.mullan at oracle.com
Tue Dec 4 22:29:48 UTC 2018


I haven't reviewed all of this, but had a couple of comments so far:

- VerificationProvider.java

77         // the provider. Otherwise, create a temporary map and use a

This comment is now stale so it needs to be removed/updated.

- Provider.java

You removed synchronized from several of the methods, but some of those 
methods modified fields such as servicesChanged and legacyChanged. Are 
there any concurrency issues or race conditions now that those methods 
are not synchronized?

--Sean


On 11/21/18 1:05 PM, Valerie Peng wrote:
> Hi,
> 
> Can someone help reviewing this fix?
> 
> Besides changing the Provider class to use ConcurrentHashMap in order to 
> reduce the lock contention on Provider.getService() calls, I also 
> changed the security providers in java.base module to register through 
> putService(...) calls. Performance is manually verified and mach5 run is 
> clean.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-7092821
> Webrev: http://cr.openjdk.java.net/~valeriep/7092821/webrev.00/
> 
> Thanks,
> Valerie
> 
> 
> 
> 
> 



More information about the security-dev mailing list