Naming CSCI 4780/6780
DHT-based Approaches Lookup functionality distributed among multiple nodes Chord – m-bit identifier space (IDs range from 0 to 2m-1) Lookup information on k will be maintained by succ(k) Simple implementation: Node q keeps track of succ(q+1) Finger table for scalable look up q keeps track of succ(q+2i-1) for 0 < i < m
Distributed Hash Table
Hierarchical Approaches Hierarchy of domains Leaf domain – lowest level of the hierarchy Location record for each entity Leaf domain node stores the actual location of the entity Upper level nodes store references to the children that contain the entity Multiple addresses if entity is replicated
Hierarchical Location Service
Location Service for Replicated Entities
Lookup in Hierarchical Location Service
Insertion in Hierarchical Lookup Service
Insertion (Contd.)
Structured Naming Names are organized into name spaces Name space is represented as a directed graph with two types of nodes Leaf Node – Represents named entity No outgoing edges Stores information on the entity it is referring (address or state of the entity) Directory node – Can have multiple outgoing edges each with a name Directory table – Contains <edge label, node ID> for each outgoing edge
A general naming graph with a single root node. Name Spaces - Example A general naming graph with a single root node.
More on Name Spaces Path name: Sequence of edge labels leading from one node to another N:<label-1, label-2 …., label-n> Absolute path name First node is the root Relative path name First node can be arbitrary node Global name Denotes same entity where ever it is used Local name Interpretation is dependent upon where it is used
Organizing Name Spaces Tree-based approach Strict hierarchical approach Directed acyclic graph Most commonly used General graphs Rarely used Single root Multiple root
Name Spaces in Unix File System The general organization of the UNIX file system implementation on a logical disk of contiguous disk blocks.
Name Resolution Process of looking-up an entity given its path name Find the corresponding node Example: N:<label-1, label-2 …. Label-n> Start at N Proceed along the edges A crucial question: Where should the resolution begin? Which node represents the root? Unix example: Which i-node corresponds to the root?
Closure Mechanism Knowing how and where to start resolution mechanism – Closure Have a universally agreed upon root In Unix root directory is the first i-node Actual byte offset is calculated by other values in superblock HOME variable in Unix – always refers to the user’s home directory