[Python-Dev] _socket efficiencies ideas (original) (raw)

Guido van Rossum guido@python.org
Wed, 09 Apr 2003 14:45:49 -0400


Sean Reifschneider wrote:

> My first thought is that there should be a local DNS cache on the > machine that is running these apps. My second thought is that Python > could benefit from caching some lookup information...

[MvL]

I disagree. Python should expose the resolver library, and leave caching to it; many such libraries do caching already, in some form.

Right.

The issue is different: In some cases the application just knows that an address is numeric, and that DNS lookup will fail.

In fact, I've often written code that passes a numeric address, and I've always assumed that in that case the code would take a shortcut because there's nothing to look up (only to parse).

In these cases, lookup should be avoided - whether by explicit request from the application or by Python implicitly just knowing is a different issue.

It turns out that Python doesn't need to 100% detect numeric addresses, as long as it would not classify addresses as numeric which aren't. Perhaps it is even possible to leave the "is numeric" test to the implementation of getaddrinfo, i.e. calling it twice (try numeric first, then try resolving the name)?

Perhaps, as long as we can safely ignore the first error. This would probably be a little slower, but probably not slow enoug to matter, and it sounds like a very general solution.

--Guido van Rossum (home page: http://www.python.org/~guido/)