Network address cache apparatus and method
First Claim
1. An apparatus comprising:
- at least one processor;
a memory coupled to the at least one processor;
a resolver residing in the memory and executed by the at least one processor, the resolver comprising;
a cache containing a plurality of entries, at least one entry including a first list of network addresses corresponding to a selected domain that are retrieved from a domain name server, wherein the domain name server changes order of network addresses corresponding to the selected domain with each request for the network addresses corresponding to the selected domain; and
a cache mechanism that changes order of network addresses in the first list of network addresses delivered from the cache when the at least one entry that includes the first list of network addresses satisfies a query, and that queries the domain name server if no entry in the cache satisfies the query.
1 Assignment
0 Petitions
Accused Products
Abstract
Cached information that includes multiple network addresses is delivered in a manner that changes the order of the network addresses each time the cached information is delivered to a client, thereby achieving load balancing in a manner that reduces network traffic and improves system performance. In the preferred embodiments, the user defines a minimum time to live (TTL) and one or more order change criteria. When a query is made to a DNS, the DNS returns an answer that includes a time to live (TTL). This answer may be stored in a cache, and may include multiple network addresses. If the TTL for the answer received from a DNS is less that the minimum TTL, the TTL for the answer is set to the minimum TTL before storing the answer in the cache. When a query may be satisfied by a cached answer that includes multiple network addresses, a cache mechanism delivers the multiple cached network addresses in an order determined by the one or more order change criteria if the TTL for the cached results is a positive number. In this manner load balancing can be achieved while still benefitting from the performance enhancements of caching DNS query results.
-
Citations
28 Claims
-
1. An apparatus comprising:
-
at least one processor;
a memory coupled to the at least one processor;
a resolver residing in the memory and executed by the at least one processor, the resolver comprising;
a cache containing a plurality of entries, at least one entry including a first list of network addresses corresponding to a selected domain that are retrieved from a domain name server, wherein the domain name server changes order of network addresses corresponding to the selected domain with each request for the network addresses corresponding to the selected domain; and
a cache mechanism that changes order of network addresses in the first list of network addresses delivered from the cache when the at least one entry that includes the first list of network addresses satisfies a query, and that queries the domain name server if no entry in the cache satisfies the query. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A client computer system coupled via a network to a domain name server that changes order of a plurality of network addresses corresponding to a selected domain with each request to the domain name server for a network address corresponding to the selected domain, the client computer system comprising:
-
(A) a resolver coupled to the domain name server, the resolver comprising;
(A1) a cache containing a plurality of entries, at least one entry including a first list of network addresses corresponding to a selected domain that are retrieved from the domain name server; and
(A2) a cache mechanism that changes order of network addresses in the first list of network addresses delivered from the cache according to at least one order change criterion when the at least one entry that includes the first list of network addresses satisfies a query, and that queries the domain name server if no entry in the cache satisfies the query;
(B) at least one client application coupled to the resolver that queries the resolver to determine network addresses that corresponds to the selected domain. - View Dependent Claims (7, 8, 9)
-
-
10. A networked computer system comprising:
-
(A) a domain name server that changes order of a plurality of network addresses corresponding to a selected domain with each request to the domain name server for a network address corresponding to the selected domain; and
(B) a client computer system coupled via a network to the domain name server, the client computer system comprising;
(B1) a resolver coupled to the at least one client application and coupled to the domain name server, the resolver comprising;
(B1A) a cache containing a plurality of entries, at least one entry including a first list of network addresses corresponding to a selected domain that are retrieved from the domain name server; and
(B1B) a cache mechanism that changes order of network addresses in the first list of network addresses delivered from the cache when the at least one entry that includes the first list of network addresses satisfies a query, and that queries the domain name server if no entry in the cache satisfies the query, wherein the cache mechanism determines time to live corresponding to the first list of network addresses when the first list of network addresses is received from the domain name server, that determines whether the time to live is less than a specified minimum time to live, that sets the time to live to the specified minimum time to live if the time to live is less than the specified minimum time to live, and that writes the first list of network addresses and corresponding time to live to a cache entry;
(B2) at least one client application that queries the resolver to determine at least one network address that corresponds to the selected domain.
-
-
11. A method for responding to a query from a client application for at least one network address corresponding to a selected domain name, the method comprising the steps of:
-
(A) retrieving a plurality of network addresses corresponding to the selected domain name from a domain name server;
(B) storing the plurality of network addresses corresponding to the selected domain name in a cache that may be accessed by the client application;
(C) in response to the query from the client application, determining whether an entry in the cache satisfies the query;
(D) if no entry in the cache satisfies the query, querying the domain name server; and
(E) if an entry in the cache satisfies the query, performing the steps of;
(E1) reading the cache entry;
(E2) determining whether the cache entry includes a plurality of network addresses;
(E3) if the cache entry includes a plurality of network addresses, performing the steps of;
(E3A) reordering the plurality of network addresses; and
(E3B) returning the cache entry with the reordered network addresses. - View Dependent Claims (12, 13, 14)
-
-
15. A method for responding to a query from a client application for at least one network address corresponding to a selected domain name, the method comprising the steps of:
-
(A) retrieving a plurality of network addresses corresponding to the selected domain name from a domain name server;
(B) reading a time to live for the plurality of network addresses;
(C) determining whether the time to live for the plurality of network addresses is less than a specified minimum time to live;
(D) if the time to live for the plurality of network addresses is less than the specified minimum time to live, setting the time to live for the plurality of network addresses to the defined minimum time to live;
(E) storing the plurality of network addresses corresponding to the selected domain name and the time to live for the plurality of network addresses in a cache that may be accessed by the client application;
(F) in response to the query from the client application, determining whether an entry in the cache satisfies the query;
(G) if no entry in the cache satisfies the query, querying the domain name server; and
(H) if an entry in the cache satisfies the query, performing the steps of;
(H1) reading the cache entry;
(H2) determining whether the cache entry includes a plurality of network addresses;
(H3) if the cache entry includes a plurality of network addresses, performing the steps of;
(H3A) reordering the plurality of network addresses in a round robin fashion; and
(H3B) returning the cache entry with the reordered network addresses.
-
-
16. A program product comprising:
-
a cache mechanism that stores a plurality of entries in a cache, at least one entry including a first list of network addresses corresponding to a selected domain that are retrieved from a domain name server, wherein the domain name server changes order of network addresses corresponding to the selected domain with each request for the network addresses corresponding to the selected domain, wherein the cache mechanism changes order of network addresses in the first list of network addresses delivered from the cache when the at least one entry that includes the first list of network addresses satisfies a query, and that queries the domain name server if no entry in the cache satisfies the query; and
(B) computer-readable signal bearing media bearing the cache mechanism. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
-
23. A program product comprising:
-
(A) a resolver comprising;
(A1) a cache containing a plurality of entries, at least one entry including a first list of network addresses corresponding to a selected domain that are retrieved from a domain name server; and
(A2) a cache mechanism that changes order of network addresses in the first list of network addresses delivered from the cache according to at least one order change criterion when the at least one entry that includes the first list of network addresses satisfies a query, and that queries the domain name server if no entry in the cache satisfies the query; and
(B) computer-readable signal bearing media bearing the resolver. - View Dependent Claims (24, 25, 26, 27, 28)
-
Specification