Simple Solution for a Location Service. Naming vs. Locating Entities. Forwarding Pointers (2) Forwarding Pointers (1)



Similar documents
Naming vs. Locating Entities

Understanding DNS (the Domain Name System)

Naming. Name Service. Why Name Services? Mappings. and related concepts

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

Introduction to Network Operating Systems

File System Management

Operating System Concepts. Operating System 資 訊 工 程 學 系 袁 賢 銘 老 師

Chapter 13 File and Database Systems

Chapter 13 File and Database Systems

IP addresses have hierarchy (network & subnet) Internet names (FQDNs) also have hierarchy. and of course there can be sub-sub-!!

Module 15: Network Structures

CS 348: Computer Networks. - DNS; 22 nd Oct Instructor: Sridhar Iyer IIT Bombay

Web DNS Peer-to-peer systems (file sharing, CDNs, cycle sharing)

3. The Domain Name Service

Naming in Distributed Systems

Names & Addresses. Names & Addresses. Names vs. Addresses. Identity. Names vs. Addresses. CS 194: Distributed Systems: Naming

Chapter 14: Distributed Operating Systems

Request Routing, Load-Balancing and Fault- Tolerance Solution - MediaDNS

SANE: A Protection Architecture For Enterprise Networks

Chapter 16: Distributed Operating Systems

Network Layers. CSC358 - Introduction to Computer Networks

SERVICE DISCOVERY AND MOBILITY MANAGEMENT

1. Comments on reviews a. Need to avoid just summarizing web page asks you for:

Outline. Definition. Name spaces Name resolution Example: The Domain Name System Example: X.500, LDAP. Names, Identifiers and Addresses

Lecture 2 CS An example of a middleware service: DNS Domain Name System

CS 348: Computer Networks. - IP addressing; 21 st Aug Instructor: Sridhar Iyer IIT Bombay

Naming in Distributed Systems

Internetworking. Problem: There is more than one network (heterogeneity & scale)

Decentralized Peer-to-Peer Network Architecture: Gnutella and Freenet

Module 2: Assigning IP Addresses in a Multiple Subnet Network

The Data Grid: Towards an Architecture for Distributed Management and Analysis of Large Scientific Datasets

Internetworking and Internet-1. Global Addresses

Network Attached Storage. Jinfeng Yang Oct/19/2015

Lecture 3: Scaling by Load Balancing 1. Comments on reviews i. 2. Topic 1: Scalability a. QUESTION: What are problems? i. These papers look at

The Domain Name System (DNS)

Websense Support Webinar: Questions and Answers

Neighbour Discovery in IPv6

Agenda. Distributed System Structures. Why Distributed Systems? Motivation

Key Management and Distribution

8.2 The Internet Protocol

ProTrack: A Simple Provenance-tracking Filesystem

CITS1231 Web Technologies. Client, Server, the Internet, and the Web

Internet Protocols Fall Lectures 7-8 Andreas Terzis

Application. Transport. Network. Data Link. Physical. Network Layers. Goal

Indirection. science can be solved by adding another level of indirection" -- Butler Lampson. "Every problem in computer

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

Understand Names Resolution

Top-Down Network Design

Application Layer. CMPT Application Layer 1. Required Reading: Chapter 2 of the text book. Outline of Chapter 2

Domain Name System (DNS)

Efficient Addressing. Outline. Addressing Subnetting Supernetting CS 640 1

Chapter 6. About This Chapter. Before You Begin. Windows 2000 Naming Schemes. [Previous] [Next]

Load balancing using Remote Method Invocation (JAVA RMI)

Supporting Large-scale Deployments through Virtual Directory Technology. A White Paper by Phil Hunt Director, Product Management, OctetString, Inc.

TCP/IP Fundamentals. OSI Seven Layer Model & Seminar Outline

Adapting Distributed Hash Tables for Mobile Ad Hoc Networks

INTERNET DOMAIN NAME SYSTEM

Chapter 12 File Management

Building a Highly Available and Scalable Web Farm

Chapter 12 File Management. Roadmap

Distribution transparency. Degree of transparency. Openness of distributed systems

The IP Transmission Process. V1.4: Geoff Bennett

Ethernet. Ethernet. Network Devices

Network Layer, Part 1 Internet Architecture. History

Application Protocols in the TCP/IP Reference Model. Application Protocols in the TCP/IP Reference Model. DNS - Concept. DNS - Domain Name System

Teldat Router. DNS Client

Domain Name Service (DNS) Training Division, NIC New Delhi

Implementing Intercluster Lookup Service

Network File System (NFS)

Chapter 17: Distributed Systems

Two Parts. Filesystem Interface. Filesystem design. Interface the user sees. Implementing the interface

DnsCluster: A networking tool for automatic domain zone updating

Understand Troubleshooting Methodology

Lesson Plans Managing a Windows 2003 Network Infrastructure

Subnetting,Supernetting, VLSM & CIDR

Communications and Networking

P2P Storage Systems. Prof. Chun-Hsin Wu Dept. Computer Science & Info. Eng. National University of Kaohsiung

Memory Allocation. Static Allocation. Dynamic Allocation. Memory Management. Dynamic Allocation. Dynamic Storage Allocation

DSR: The Dynamic Source Routing Protocol for Multi-Hop Wireless Ad Hoc Networks

Application Protocols in the TCP/IP Reference Model

Global Server Load Balancing

Network Models OSI vs. TCP/IP

Motivation. Domain Name System (DNS) Flat Namespace. Hierarchical Namespace

Review: Lecture 1 - Internet History

Overlay Networks. Slides adopted from Prof. Böszörményi, Distributed Systems, Summer 2004.

Exploiting Remote Memory Operations to Design Efficient Reconfiguration for Shared Data-Centers over InfiniBand

Web Application Hosting Cloud Architecture

Configuration Manager

VXLAN: Scaling Data Center Capacity. White Paper

Chapter 9: Name Services. 9.1 Introduction 9.2 Name services and the DNS 9.3 Directory services 9.6 Summary

Additional Information: A link to the conference website is available at:

Transcription:

Naming vs. Locating Entities Till now: resources with fixed locations (hierarchical, caching,...) Problem: some entity may change its location frequently Simple solution: record aliases for the new address or the new name But: efficiency, re-use of old names,... New approaches are necessary, e.g. identifiers for an resource Simple Solution for a Location Service Using Broadcast or Multicast Broadcast is typically offered in LANs Simple locating process: broadcast identifier and wait on a reply (principle used in ARP) But: inefficient in large systems Entity ID More efficient: using multicast for location But: you need to build up and to know the multicast group a) Direct, single level mapping between names and addresses b) Two-level mapping using identifiers. Needs a location service to resolve identifiers 45 46 Forwarding Pointers (1) Forwarding Pointers (2) More popular approach for location: Forwarding Pointers Principle: A moving entity leaves behind a reference to the new location Client follows the chain of forwarding pointers old location But... Long chains make the location process very expensive Intermediate nodes have to store all pointers as long as needed Broken links prohibit location Short chains and robust pointers are needed new location When an object moves it leaves behind a proxy having the new location reference Location is transparent for the client, request is forwarded along the chain Object sends back its new location to the caller, the forwarding pointer is redirected 47 48

Home-Based Approaches Hierarchical Approaches Extending the home-based approach to several layers Network is divided into domains, sub-domains,... (similar to DNS) Leaf domains: local area network, cell in a mobile telephone network,... Popular approach for large-scale networks: home location Similar principle as used in Mobile IP But: increase in communication latency, fixed home location 49 An entity located in domain D is represented by a location record in directory node dir(d) Location records on higher hierarchies point to next sub-domain directory node 50 Information Stored in Nodes Location Lookup Entities may have multiple addresses (e.g. replication) Higher-level node stores pointers to each location Scalability problem: root node has to store all information Looking up a location in a hierarchically organized location service Client contacts directory node in its own domain Go up hierarchy to the first directory node holding the information 51 52

Location Update Install a replicate in a new domain: new pointers have to be set Pointer Caches Caching can be used to store locations of 'stable' nodes Location caching: inefficient lookup with each location change Pointer caching: Caching a reference to a directory node (dir(d)) of the lowest-level domain in which an entity (E) will reside most of the time. a) An insert request is forwarded to the first node that knows about entity E. b) A chain of forwarding pointers to the leaf node is created. Similar operation: deletion of pointers 53 54 Invalidation of Pointer Caches Scalability Issues Root directory node becomes bottleneck Solution: placing sub-nodes of a partitioned root across the network Spread sub-nodes uniformly; but new scalability problems: which node to give responsibility??? A cache entry that needs to be invalidated because it returns a non-local address, while such an address is available. 55 56

The Problem of Unreferenced Objects Solution: Reference Counting Problem with forwarding pointers: unreferenced object Garbage collection for remote objects: hidden from clients and objects itself How many proxies point to another one? Reference graph Simply count the references pointing to you Problem: unreliable communication Process P expects to get an acknowledgement when it increases the skeletons counter Acknowledgement can get lost P sends the increase message again Necessary to detect duplicates 57 58 Reference Counting Advanced Referencing Counting Another problem: copying a remote reference to another process Weighted reference counting: each object has A fixed total weight A partial weight, initialised with the total weight Creating a remote reference causes transmitting half the partial weight to the referencer a) Copying a reference to another process and incrementing the counter too late b) Solution by using acknowledgements One more problem: performance problems in large-scale systems by communication overhead 59 a) The initial assignment of weights in weighted reference counting b) Weight assignment when creating a new reference. 60

Weighted Referencing Counting Weighted Referencing Counting Copying a reference to P2 causes P1 in transmitting half the weight Problem: the partial weight of the remote object can become zero. What is with former objects which want to make a reference? Make use of indirections when partial weight reaches one Deleting a reference causes the remote object to subtract the weight of the referencer from its total weight When the total weight becomes zero, there are no more references When copying the reference to P2, P1 creates a local skeleton with some total weight and the same partial weight Then transmitting half the partial weight to P2 61 62 Generation Referencing Counting And much simpler... Alternative to the use of indirections: generation reference counting Reference listing Skeleton keeps track of the proxies having a reference to it, i.e. it has a list of all these proxies (reference list) instead of a counter Associate a generation and a copy counter with each referencing process Both counters are initialised with zero When copying a reference, the copy counter is increased; the new referencer becomes the next generation compared to the old one Skeleton maintains the numbers of outstanding copies for each generation; in case of a decrement request, the counter for the referencer's generation is decreased. The copies of the referencer is added to the next generation. If all generation entries are zero, there are no more references 63 No problems with duplicated increments Easy to keep the list consistent in case of process failures Problem: copying a reference and deleting it too early (as in reference counting) Main drawback: bad scalability in case of many references Used in Java RMI 64

Conclusion Different concepts: Naming Services for mapping of logical names to addresses Directory Services for searching addresses by describing the needed object Discovery Services as a name database in dynamic networks Location Services for supporting moving objects Some close relations to file systems and reference counting What is the best concept? There is no general answer it always depends on the application 65