A scalable domain name system with persistence and load balancing receives
requests from client DNS servers or other DNS servers. Each DNS server is
associated with a subset of the DNS groups in the network and the
invention checks to see if the client DNS server is part of the DNS group
that the DNS server is authoritative. If the DNS server is not
authoritative for the client DNS server's group, then the request is
forwarded to the proper DNS server. Otherwise, the invention checks a
persistence table to see if a persistent response is required for the
request. If a persistent response is required, the appropriate IP address
entry in the table is returned to the requestor. If a persistent response
is not required, the invention determines the load, availability, and
latency of the content servers from information stored in a latency table
to determine the proper content server's address to return to the
requestor. The DNS server sends any responses to forwarded requests to the
client DNS server. When more than one DNS server is authoritative for an
overlapping DNS group, the invention ensures that the persistence and
latency tables are synchronized with any other DNS servers. The invention
also allows the persistence and latency tables to be located on a set of
table servers within the network. Another aspect of the invention allows
the DNS server that a request is forwarded to, to respond directly to the
client and the client is redirected to the DNS server.
Un Domain Name System scalable con l'equilibratura del carico e di persistenza riceve le richieste dagli assistenti di DNS del cliente o da altri assistenti di DNS. Ogni assistente di DNS è associato con un sottoinsieme dei gruppi di DNS nella rete e l'invenzione controlla per vedere se l'assistente di DNS del cliente fa parte del gruppo di DNS che l'assistente di DNS è autorevole. Se l'assistente di DNS non è autorevole per il gruppo del cliente dell'assistente di DNS, allora la richiesta è spedita all'assistente adeguato di DNS. Altrimenti, l'invenzione controlla una tabella di persistenza per vedere se una risposta persistente è richiesta per la richiesta. Se una risposta persistente è richiesta, l'entrata adatta di IP address nella tabella è restituita al richiedente. Se una risposta persistente non è richiesta, l'invenzione determina il carico, la disponibilità e lo stato latente degli assistenti soddisfatti dalle informazioni memorizzate in una tabella di stato latente per determinare l'indirizzo dell'assistente soddisfatto adeguato per rinviare al richiedente. L'assistente di DNS trasmette tutte le risposte alle richieste spedite all'assistente di DNS del cliente. Quando più di un assistente di DNS è autorevole per un gruppo di sovrapposizione di DNS, l'invenzione si accerta che le tabelle di stato latente e di persistenza siano sincronizzate con tutti gli altri assistenti di DNS. L'invenzione inoltre permette le tabelle di stato latente e di persistenza da situare su un insieme degli assistenti della tabella all'interno della rete. Un'altra funzione dell'invenzione permette che l'assistente di DNS che una richiesta fosse spedita a, risponda direttamente al cliente ed il cliente è riorientato all'assistente di DNS.