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

Weijun Wang weijun.wang at oracle.com
Thu Dec 6 03:28:00 UTC 2018


Hi Valerie

-        map.put("CertPathBuilder.PKIX ValidationAlgorithm",
-            "RFC5280");
-        map.put("CertPathValidator.PKIX ValidationAlgorithm",
-            "RFC5280");
+        attrs.put("PKIX ValidationAlgorithm", "RFC5280");   <<<<<<<<<< !!!!
+        add(p, "CertPathBuilder", "PKIX",
+                "sun.security.provider.certpath.SunCertPathBuilder",
+                null, attrs);
+        add(p, "CertPathValidator", "PKIX",
+                "sun.security.provider.certpath.PKIXCertPathValidator",
+                null, attrs);

Here, "PKIX" is the algorithm name and not a part of the attribute name.

Other new aliases and attributes look good.

Thanks
Max


> On Nov 22, 2018, at 2:05 AM, Valerie Peng <valerie.peng at oracle.com> 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