Computer Science 441

Principles of Distributed Systems

Gregory M. Kapfhammer

flickr photo shared by Patrick Brosset under a Creative Commons ( BY-NC ) license

Color Scheme

Key Concept

Corresponding Diagram

In-Class Discussion

In-Class Activity

Details in the Textbook

Naming in distributed systems


"There are only two hard things in Computer Science: cache invalidation and naming things."

Phil Karlton

Find and discuss the article by Martin Fowler

Why is it so hard to name things?

Why is this critical in distributed computing?

Access point


Location independent names

True Identifiers

An identifier refers to at most one entity

Each entity is referred to by at most one identifier

An identifier is never reused in the system

Globally unique identifiers

Try out the uuidgen tool!

Human-friendly names

Name-to-address binding

Naming and locating mobile entities

Challenges for mobile entities?

Forwarding pointers

Home-based methods

Flat names are good for machines

Problems with flat names?

They are missing context!

Structured name spaces

Hierarchical name spaces


Root node

Path name

Absolute path name

Relative path name

Global and local names

Name resolution methods

Useful in many types of distributed systems!

flickr photo shared by p!o under a Creative Commons ( BY-NC-ND ) license

Implementing a namespace

See Figure 5-13 for more details

Domain name system

Name resolution

How should clients interact with name servers?

Iterative resolution

Recursive resolution

See Figures 5-15 and 5-15!

What are the trade-offs?