MULTI-THREADED NAME SERVER
First Claim
1. A method for identifying an address corresponding to a domain name, the method comprising:
- receiving a first request at a request dispatcher thread, said first request comprising a first host name;
spawning a first child thread to said request dispatcher thread;
identifying at least a portion of said first host name in a host name cache;
returning from said first child thread a first host address corresponding to said first host name;
receiving a second request at said request dispatcher thread, said second request comprising a second host name;
spawning a second child thread to said request dispatcher thread, wherein said first child thread and said second child thread are active concurrently and share one or more resources in a program environment;
identifying at least a portion of said second host name in said host name cache; and
returning from said second child thread a second host address corresponding to said second host name.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for mapping between a host name and a host address is provided. According to one aspect of the invention, a multi-threaded name server handles multiple concurrent name requests, and is particularly well suited for a host system controlling information relating to a large number of domain names. In a preferred embodiment as described herein, a multi-threaded name server comprises a request dispatcher thread capable of spawning multiple child threads. For each name request received by the request dispatcher thread, the request dispatcher spawns a child thread to handle the request. The child threads query a host name hash table to determine whether the host name hash table comprises a host name matching a host name in the name request. The result is a multi-threaded, non-blocking name server capable of handling multiple concurrent name requests for a large number of domain names. According to a particular embodiment, the multi-threaded name server further comprises a database coherency thread. The database coherency thread continuously or regularly queries a database comprising information corresponding to a plurality of domain names. When information in the database changes, the database coherency thread updates the host name cache to reflect any changes.
-
Citations
17 Claims
-
1. A method for identifying an address corresponding to a domain name, the method comprising:
-
receiving a first request at a request dispatcher thread, said first request comprising a first host name;
spawning a first child thread to said request dispatcher thread;
identifying at least a portion of said first host name in a host name cache;
returning from said first child thread a first host address corresponding to said first host name;
receiving a second request at said request dispatcher thread, said second request comprising a second host name;
spawning a second child thread to said request dispatcher thread, wherein said first child thread and said second child thread are active concurrently and share one or more resources in a program environment;
identifying at least a portion of said second host name in said host name cache; and
returning from said second child thread a second host address corresponding to said second host name. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for providing host name services comprising:
-
executing a non-blocking host name service on one or more processors connected to a network, said non-blocking host name service responding to multiple concurrent host name resolution requests by spawning multi-threaded request handler threads for said multiple concurrent host name resolution requests;
concurrently executing a database coherency thread with said non-blocking host name service, said database coherency thread continuously updating a host name hash table based on changing values in a centralized database; and
returning a host address corresponding to at least one of said multiple concurrent host name resolution requests, said host address extracted from an address table, if data from said at least one of said multiple concurrent host name resolution requests corresponds to data in said host name hash table. - View Dependent Claims (7)
-
-
8. A computer readable medium having stored therein one or more sequences of instructions for identifying an address corresponding to a domain name, said one or more sequences of instructions causing one or more processors to perform a plurality of acts, said acts comprising:
-
receiving a first request at a request dispatcher thread, said first request comprising a first host name;
spawning a first child thread to said request dispatcher thread;
identifying at least a portion of said first host name in a host name cache;
returning from said first child thread a first host address corresponding to said first host name;
receiving a second request at said request dispatcher thread, said second request comprising a second host name;
spawning a second child thread to said request dispatcher thread, wherein said first child thread and said second child thread are active concurrently and share one or more resources in a program environment;
identifying at least a portion of said second host name in said host name cache; and
returning from said second child thread a second host address corresponding to said second host name. - View Dependent Claims (9, 10, 11, 12, 14)
-
-
13. A multi-threaded domain name server comprising:
-
a processor;
a memory communicatively coupled to said processor;
a database communicatively coupled to said processor, said database comprising a plurality of domain names;
wherein said memory is configured to store a host name cache, said host name cache comprising information representative of said plurality of domain names in said database; and
whereinsaid processor is configured spawn a first thread and a plurality of multi-threaded child threads, said first thread dispatching a plurality of concurrent incoming domain name requests to said plurality of child threads, each of said child threads configured to handle exactly one of said plurality of concurrent incoming domain name requests by identifying data in said host name cache corresponding to exactly one of said incoming domain name requests, and wherein two or more of said child threads are active concurrently. - View Dependent Claims (15, 16, 17)
-
Specification