RFR: 8055753: Use ConcurrentHashMap to map ProtectionDomain to PermissionCollection

Oracle weijun.wang at oracle.com
Wed May 20 02:20:51 UTC 2015


The code change looks fine.

Some tiny suggestions on styles:

Is it possible to move the definition of Key before key is assigned?

Some left braces ("{") are on new lines, looks inconsistent with others.

Line 465, /* -> /**.

Thanks
Max

> 在 2015年5月16日,上午1:01,Sean Mullan <sean.mullan at oracle.com> 写道:
> 
> This is the first in a series of fixes that I will be sending out for review for JEP 232 (Improve Secure Application Performance) [1].
> 
> webrev: http://cr.openjdk.java.net/~mullan/webrevs/8055753/webrev.00/
> bug: https://bugs.openjdk.java.net/browse/JDK-8055753
> 
> This fix changes the ProtectionDomain (PD) cache from a synchronized HashMap to a ConcurrentHashMap. This increases the throughput of the Policy.implies method up to ~3x (when the PD is cached) as more threads are added. The bug contains a performance chart with more details.
> 
> Since the previous code used a WeakHashMap, and there is no equivalent WeakConcurrentHashMap, I have added some additional code to check for and remove weak keys from the ConcurrentHashMap.
> 
> Finally, I had to undo the fix for JDK-8078989 [2] in this fix. That fix has some problems and is likely the cause of another regression we have seen [3]. I am still investigating that, but I will likely re-open that bug before I push this fix back.
> 
> Thanks,
> Sean
> 
> [1] http://openjdk.java.net/jeps/232
> [2] https://bugs.openjdk.java.net/browse/JDK-8078989
> [3] https://bugs.openjdk.java.net/browse/JDK-8077418


More information about the security-dev mailing list