InetAddress should utilize networkaddress.cache.ttl for getLocalHost() too

Deven You youdwei at linux.vnet.ibm.com
Wed Jul 11 23:59:32 PDT 2012


Hi Alan and Michael,

Thanks very much for your kind suggestions.

I agree that local host shouldn't follow the default caching mechanism 
because the IP may change frequently. And I also think making the cache 
time configurable is a better solution.

I am willing to make these changes including adding the local host 
caching mechanism into the java doc.

I have gone through the related code for InetAddress.java and 
InetAddressCachePolicy.java. And I think we could add a new security 
property networkaddress.cache.localhost.ttl to achieve the goal.

As far as I know, to add networkaddress.cache.localhost.ttl I need 
change jdk/src/share/lib/security/java.security*(include java.security, 
java.security-solaris, java.security-macosx and java.security-windows). 
Please correct me if I have any misunderstanding.

Here I have one question need your help:
     the static block in InetAddressCachePolicy.java will first try to 
get cachePolicyProp/negativeCachePolicyProp from System properties. If 
one of the cache values is null then the value of 
cachePolicyPropFallback/negativeCachePolicyProp would be got from System 
properties.
    I don't know where we declare these fallback properties so I have no 
idea where I can do the same thing for networkaddress.cache.localhost.ttl.

Please take a look.

Thanks a lot!


On 07/11/2012 06:55 PM, Michael McMahon wrote:
> On 11/07/12 08:00, Alan Bateman wrote:
>> On 05/07/2012 07:10, Deven You wrote:
>>> Hi All,
>>>
>>> I noticed that InetAddress.getLocalHost() uses cache to improve the 
>>> performance. However the default implementation is caching local 
>>> host within 5 seconds.
>>>
>>> From the spec, networkaddress.cache.ttl should be used to control 
>>> the cache behaviour and I think it is a better solution.
>>>
>>> For example, if the networkaddress.cache.ttl is set to -1 which 
>>> means always cache the local host then we can avoid unnecessary 
>>> operations on getAddressesFromNameService to improve the performance.
>>>
>>> I have made a patch for this solution, so anyone would like to take 
>>> a look?
>>>
>>> [1] http://cr.openjdk.java.net/~littlee/OJDK-527/webrev.00/ 
>>> <http://cr.openjdk.java.net/%7Elittlee/OJDK-527/webrev.00/>
>>> Thanks a lot!
>>> -- 
>>> Best Regards,
>>>
>>> Deven
>> I'm not sure about this one as I suspect it will cause problems in 
>> DHCP or any environments where the host addresses changes, say moving 
>> to a different wireless network or waking up a machine after hibernation.
>>
>> -Alan
>
> That's true. We updated the spec for the caching behavior a while 
> back, and probably should have included this exception
> for the local host. I agree that we shouldn't change the behavior. 
> Perhaps, the 5 seconds could be configurable itself,
> but I think it should be kept separate from the main caching behavior.
>
> - Michael.
>


-- 
Best Regards,

Deven

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/net-dev/attachments/20120712/ee70777f/attachment.html 


More information about the net-dev mailing list