The Main Name System
PhD dissertation, University of Cambridge April 2006.
The Domain Name System (DNS) is a globally distributed nameservice for the internet. It uses delegation of areas of the namespace to spread both the administrative load and the service load. However, this delegation introduces complexity onto the operation of the service, which in turn brings opportunities for delay, failure and error.
In this dissertation, we present a centralized architecture for the DNS, which removes the link between administrative delegation and distribution of nameservice. By aggregating all DNS data at a few servers, it makes name lookups simpler, and removes the errors associated with inconsistency of data. This is done without requiring changes to the lookup protocol, the namespace, or the deployed client base. The cost of the simplified lookups is a more complex update mechanism; however, since nameservice updates are rarer and more tolerant of delay than lookups, this is an improvement.
We describe the current workload of the DNS, as a yardstick against which other nameservices might be measured. We then discuss how a centralized service could be built to handle the queries and updates of the current DNS, and describe and evaluate a datastructure and algorithms suitable for serving large numbers of DNS records.