Claims
- 1. A low delay domain name resolution system, comprising:
one or more servers, each of the servers configured to resolve domain name resolution requests and including a routing mechanism reactive to a state of the server; each of the servers including a query mechanism, the query mechanism configured to obtain a group of records from a database using one or more compound database queries, such that the server obtains the group of records at a data rate faster than the underlying data retrieval rate of the database.
- 2. The system of claim 1 in which the query mechanism is further configured to organize a sequence of multiple queries based on the records obtained using earlier queries.
- 3. The system of claim 1 in which the query mechanism is further configured to organize the sequence of multiple queries by forming, for each domain name resolution request, at least one common case query based on the content of the domain name query, and to execute the at least one common case query prior to any other general query.
- 4. The system of claim 3 in which the records are maintained according to a plurality of domain name zones, and the query mechanism is further configured to optimize a sequence of the common case queries based on statistics maintained for each zone.
- 5. The system of claim 1, wherein a single one of the compound queries obtains from the database all records required to construct a domain name resolution response.
- 6. The system of claim 5, in which the compound query retrieves combinations of answer, authority and additional records from the database.
- 7. The system of claim 6, in which the compound query retrieves available CNAME records from the database.
- 8. The system of claim 3, in which the common case queries are based on the outcome probabilities for the domain name resolution request.
- 9. The system of claim 1, wherein the records obtained from the database include an Internet Protocol address corresponding to the domain name resolution request.
- 10. The system of claim 1, in which the routing mechanism routes domain name resolution requests to the nearest server based on user proximity information.
- 11. The system of claim 1, in which the routing mechanism monitors each server and withdraws routes to servers that do not respond to domain name resolution requests.
- 12. A low delay domain name resolution method, comprising:
receiving a domain name resolution request at one or more servers; forming, using a query mechanism, at least one compound database query corresponding to the domain name resolution request; sending the at least one compound database query to a database; obtaining from the database a domain name resolution response including a group of database records, wherein the records are received by the one or more servers at a data rate faster than the underlying data retrieval rate of the database.
- 13. The method of claim 12, further comprising organizing a sequence of multiple queries based on the records obtained using earlier queries.
- 14. The method of claim 13 in which the organizing further comprises:
forming, for each domain name resolution request, at least one common case query based on the content of the domain name query; and performing the at least one common case query prior to any other general query.
- 15. The method of claim 14, in which the records are maintained according to a plurality of domain name zones, and in which the forming at least one common case query is based on statistics maintained for each zone.
- 16. The method of claim 12, wherein a single one of the compound queries obtains from the database all records required to construct a domain name resolution response.
- 17. The method of claim 12, in which the group of records comprises combinations of answer, authority and additional records from the database.
- 18. The method of claim 17, in which the group of records further comprises available CNAME records from the database.
- 19. The method of claim 14, in which the common case queries are based on the outcome probabilities for the domain name resolution request.
- 20. The method of claim 12, wherein the records obtained from the database include an Internet Protocol address corresponding to the domain name resolution request.
- 21. The method of claim 12, further comprising routing the domain name resolution request to the nearest server based on user proximity information.
- 22. The method of claim 12, further comprising:
monitoring each server; and withdrawing routes to servers that do not respond to domain name resolution requests.
- 23. A method of providing an answer to a request for an Internet Protocol (IP) address of one of a plurality of devices on the Internet, the method comprising:
obtaining a user request for an IP address corresponding to a domain name; determining, if there is a plurality of choices of authoritative name servers from where an answer can be obtained, an authoritative name server based on common case optimization, the answer containing at least one IP address corresponding to the domain name and other relevant information; constructing an aggregated query with respect to the authoritative name server to retrieve the answer; and providing the answer by querying the authoritative name server using the aggregated query.
- 24. The method according to claim 23, wherein the other relevant information includes at least some of:
names of at least one authoritative name server; and IP addresses of the at least one authoritative server.
- 25. The method according to claim 23, wherein determining the authoritative name server based on common case optimization comprises:
selecting, if the domain name is one label longer than that of the name of the zone for which a first name server that receives the request is responsible, the first name server representing the zone as the authoritative name server; selecting, if no answer is obtained from the first name server representing the zone, a second name server that has been delegated for the next level domain name relative to the zone as the authoritative name server; selecting, if no answer is obtained from the second name server, the authoritative name server by at least one of:
recursively selecting the authoritative name server with respect to the domain name until the answer is found; or selecting the authoritative name server based on statistics dynamically collected with respect to zones represented by different authoritative name servers.
- 26. The method according to claim 23, wherein said constructing comprises:
extracting the domain name from the request; deriving at least one domain name corresponding to at least one authoritative name server; identifying context information; and building the aggregated query based on the domain name, the at least one authoritative name serve domain name, and the context information.
- 27. The method according to claim 26, wherein the context information includes at least one of:
context information from the user request; local context information; and global context information.
- 28. The method according to claim 27, wherein the context information includes address information indicating an address of the user.
- 29. The method according to claim 27, wherein the context information includes the local time.
- 30. The method according to claim 27, wherein the context information includes a geographic location.
- 31. The method according to claim 23, wherein providing the answer comprises:
querying the authoritative name server using the aggregated query; receiving query result from the authoritative name server; and deriving the answer from the query result.
- 32. The method according to claim 31, wherein said querying includes retrieving the query result from a cache.
- 33. The method according to claim 32, wherein said retrieving query result from the cache comprises:
identifying the query result in the cache; and validating the query result.
- 34. The method according to claim 33, wherein said validating comprises:
if the query result is fresh, sending the query result directly from the cache; and if the query result either is stale or does not exist in the cache, then
retrieving the query result from a database; sending the query result; and updating the cache to reflect the retrieved query result.
- 35. The method according to claim 34, wherein items in the cache includes individual records or aggregated records.
- 36. The method according to claim 35, wherein each record in the cache corresponds to either:
a positive record representing a positive query result wherein a request is made for a host that exists in an active domain; or a negative record representing a negative query result wherein a request is made for a host that does not exist in an active domain.
- 37. The method according to claim 36, wherein each record in the cache has a maximum lifetime, ranging from the time to live for the lowest resource record in a complete answer to a maximum cache time value, used to evaluate whether the each record is stale.
- 38. The method according to claim 34, further comprising:
retrieving the query result from a database of the authoritative name server if the query result is not found in the cache.
- 39. A system for processing domain name requests, the system comprising:
a query mechanism constructed and adapted to:
obtain a user request for an IP address corresponding to a domain name; determine, if there is a plurality of choices of authoritative name servers from where an answer can be obtained, an authoritative name server based on common case optimization, the answer containing at least one IP address corresponding to the domain name and other relevant information; construct an aggregated query with respect to the authoritative name server to retrieve the answer; and provide the answer by querying the authoritative name server using the aggregated query.
- 40. The system according to claim 39, wherein the other relevant information includes at least some of:
names of at least one authoritative name server; and IP addresses of the at least one authoritative server.
- 41. The system according to claim 39, wherein determine the authoritative name server based on common case optimization comprises:
selecting, if the domain name is one label longer than that of the name of the zone for which a first name server that receives the request is responsible, the first name server representing the zone as the authoritative name server; selecting, if no answer is obtained from the first name server representing the zone, a second name server that has been delegated for the next level domain name relative to the zone as the authoritative name server; selecting, if no answer is obtained from the second name server, the authoritative name server by at least one of:
recursively selecting the authoritative name server with respect to the domain name until the answer is found; or selecting the authoritative name server based on statistics dynamically collected with respect to zones represented by different authoritative name servers.
- 42. The system according to claim 39, wherein said construct the aggregated query comprises:
extracting the domain name from the request; deriving at least one domain name corresponding to at least one authoritative name server; identifying context information; and building the aggregated query based on the domain name, the at least one authoritative name serve domain name, and the context information.
- 43. The system according to claim 42, wherein the context information includes at least one of:
context information from the user request; local context information; and global context information.
- 44. The system according to claim 42, wherein the context information includes address information indicating an address of the user.
- 45. The system according to claim 44, wherein the context information includes the local time.
- 46. The system according to claim 42, wherein the context information includes a geographic location.
- 47. The system according to claim 39, wherein provide the answer comprises:
querying the authoritative name server using the aggregated query; receiving query result from the authoritative name server; and deriving the answer from the query result.
- 48. The system according to claim 47, further comprising a cache wherein the query mechanism is constructed and adapted to perform the query by attempting first to retrieve the query result from the cache.
- 49. The system according to claim 48, wherein said retrieving query result from the cache comprises:
identifying the query result in the cache; and validating the query result.
- 50. The system according to claim 49, wherein said validating comprises:
if the query result is fresh, sending the query result directly from the cache; and if the query result either is stale or does not exist in the cache, then retrieving the query result from a database; sending the query result; and updating the cache to reflect the retrieved query result.
- 51. The system according to claim 50, wherein items in the cache includes individual records or aggregated records.
- 52. The system according to claim 51, wherein each record in the cache corresponds to either:
a positive record representing a positive query result wherein a request is made for a host that exists in an active domain; or a negative record representing a negative query result wherein a request is made for a host that does not exist in an active domain.
- 53. The system according to claim 52, wherein each record in the cache has a maximum lifetime, ranging from the time to live for the lowest resource record in a complete answer to a maximum cache time value, used to evaluate whether the each record is stale.
- 54. The system according to claim 53, wherein the query mechanism is further constructed and adapted to retrieve, when the query result is not found in the cache, the query result from a database of the authoritative name server.
RELATED APPLICATIONS
[0001] This patent application is a division under 35 USC §120 of U.S. patent application Ser. No. 09/516,181 entitled “SCALABLE AND EFFICIENT DOMAIN NAME RESOLUTION,” filed Mar. 1, 2000, co-pending, and is related to and claims priority under 35 USC §119(e) to U.S. Provisional Patent Application No. 60/124,022, titled “DOMAIN NAME RESOLUTION,” filed Mar. 3, 1999, which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60124022 |
Mar 1999 |
US |
Divisions (1)
|
Number |
Date |
Country |
Parent |
09516181 |
Mar 2000 |
US |
Child |
10463663 |
Jun 2003 |
US |