Faculty of Computer Science Institute for System Architecture, Operating Systems Group Designing a Global Name Service written by Butler W. Lampson, presented by Thomas Knauth pizza-reading-group, summer term 2007
Introduction • What is a name service after all? – maps names to values e.g. domain names to IP addresses • What are the design challenges? – size – lifetime – high availability – fault-tolerance – mistrust • Where are name services used today? – most prominent is probably DNS – in fact, this design uses the name service to look up server names TU Dresden, 2007-05-23 Designing a Global Name Service Slide 2 of 11
Directory tree • basic element is the directory • directory identifier (DI) • directory reference is value of the name i.e. the DI • directory maps directory names to directory identifiers TU Dresden, 2007-05-23 Designing a Global Name Service Slide 3 of 11
Values in a directory • directory maps names to trees • labels • timestamps for synchronization • mark indicates whether node is present or absent • value of a path can be – single leaf – set of leaves – sub-tree TU Dresden, 2007-05-23 Designing a Global Name Service Slide 4 of 11
Behind the scenes • multiple directory copies • copies loosely synchronized – sync by sweeps, or – by messages • copies linked into a ring TU Dresden, 2007-05-23 Designing a Global Name Service Slide 5 of 11
Growing the name space • adding is straightforward • combining by creating a new root – keep set of well-known directory identifiers TU Dresden, 2007-05-23 Designing a Global Name Service Slide 6 of 11
Restructuring • making IBM subtree of DEC – create a link if old name should still work TU Dresden, 2007-05-23 Designing a Global Name Service Slide 7 of 11
Caching • directory reference upper bound on validity called expiration time • directory lookup can be safely cached for t=minimum over all expiration times TU Dresden, 2007-05-23 Designing a Global Name Service Slide 8 of 11
What I left out • intricacies of update/sweeping mechanism • name service interface – client/administrators way to interact with the service • specification – collection of predicates that must hold during execution TU Dresden, 2007-05-23 Designing a Global Name Service Slide 9 of 11
Rather closed questions • “I expect that most updates will be distributed in messages, but it is extremely difficult to make this method fully reliable. The sweep, [...], is quite easy to implement reliably.” Why? • What is SRC/Birrell? – l*/l where l* is empty? But it's not an only child ... – l*/li where li is a leaf node? But not all are leaf nodes ... – l* were the node where it ends is the value of l*; is there a node for l* ?! TU Dresden, 2007-05-23 Designing a Global Name Service Slide 10 of 11
Open questions • Would you expect anything else from a name service? Does technological advance allow for some other design? • What do current name services (e.g. DNS) look like? • Has this design proven practical? • What about multiple roots and links from one tree into another? TU Dresden, 2007-05-23 Designing a Global Name Service Slide 11 of 11
Recommend
More recommend