Chord - A Distributed Hash Table



Similar documents
Chord. A scalable peer-to-peer look-up protocol for internet applications

Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications

Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications

Load Balancing in Structured Overlay Networks. Tallat M. Shafaat

query enabled P2P networks Park, Byunggyu

Distributed Hash Tables in P2P Systems - A literary survey

A P2P SERVICE DISCOVERY STRATEGY BASED ON CONTENT

Async: Secure File Synchronization

New Structured P2P Network with Dynamic Load Balancing Scheme

p2p: systems and applications Internet Avanzado, QoS, Multimedia Carmen Guerrero

LOOKING UP DATA IN P2P SYSTEMS

Calto: A Self Sufficient Presence System for Autonomous Networks

Architectures and protocols in Peer-to-Peer networks

Decentralized supplementary services for Voice-over-IP telephony

SCALABLE RANGE QUERY PROCESSING FOR LARGE-SCALE DISTRIBUTED DATABASE APPLICATIONS *

Acknowledgements. Peer to Peer File Storage Systems. Target Uses. P2P File Systems CS 699. Serving data with inexpensive hosts:

Tornado: A Capability-Aware Peer-to-Peer Storage Network

An Introduction to Peer-to-Peer Networks

GISP: Global Information Sharing Protocol a distributed index for peer-to-peer systems

International Journal of Scientific & Engineering Research, Volume 4, Issue 11, November ISSN

New Algorithms for Load Balancing in Peer-to-Peer Systems

Lecture 25: Security Issues in Structured Peer-to-Peer Networks. Lecture Notes on Computer and Network Security. by Avi Kak

Varalakshmi.T #1, Arul Murugan.R #2 # Department of Information Technology, Bannari Amman Institute of Technology, Sathyamangalam

RESEARCH ISSUES IN PEER-TO-PEER DATA MANAGEMENT

PEER TO PEER CLOUD FILE STORAGE ---- OPTIMIZATION OF CHORD AND DHASH. COEN283 Term Project Group 1 Name: Ang Cheng Tiong, Qiong Liu

Adapting Distributed Hash Tables for Mobile Ad Hoc Networks

Locality-Aware Randomized Load Balancing Algorithms for DHT Networks

Optimizing and Balancing Load in Fully Distributed P2P File Sharing Systems

A Peer-to-Peer File Sharing System for Wireless Ad-Hoc Networks

Department of Computer Science Institute for System Architecture, Chair for Computer Networks. File Sharing

R-Chain: A Self-Maintained Reputation Management System in P2P Networks

A Survey on Distributed Hash Table (DHT): Theory, Platforms, and Applications. Hao Zhang, Yonggang Wen, Haiyong Xie, and Nenghai Yu

IMPACT OF DISTRIBUTED SYSTEMS IN MANAGING CLOUD APPLICATION

Krunal Patel Department of Information Technology A.D.I.T. Engineering College (G.T.U.) India. Fig. 1 P2P Network

A Reputation Management System in Structured Peer-to-Peer Networks

A Self-Managing SIP-based IP Telephony System based on a P2P approach using Kademlia

A Survey and Comparison of Peer-to-Peer Overlay Network Schemes

Using Peer to Peer Dynamic Querying in Grid Information Services

Quantitative Analysis of 2-tier P2P- SIP Architecture with ID-based Signature

RELOAD Usages for P2P Data Storage and Discovery

Overlays on Wireless Mesh Networks: Implementation and Cross-Layer Searching

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

LOAD BALANCING WITH PARTIAL KNOWLEDGE OF SYSTEM

A PROXIMITY-AWARE INTEREST-CLUSTERED P2P FILE SHARING SYSTEM

Security in Structured P2P Systems

Evolution of Peer-to-Peer Systems

INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY

A Load Balancing Method in SiCo Hierarchical DHT-based P2P Network

CS5412: TIER 2 OVERLAYS

P2P Networking - Advantages and Disadvantages of Virtualization

Research Issues in Peer-to-Peer Data Management

Load Balancing in Structured P2P Systems

A Survey of Peer-to-Peer File Sharing Technologies

Evaluating Load Balancing in Peer-to-Peer Resource Sharing Algorithms for Wireless Mesh Networks

5. Peer-to-peer (P2P) networks

Methods & Tools Peer-to-Peer Jakob Jenkov

Optimizing service availability in VoIP signaling networks, by decoupling query handling in an asynchronous RPC manner

SLBA: A Security Load-balancing Algorithm for Structured P2P Systems

Improving Availability with Adaptive Roaming Replicas in Presence of Determined DoS Attacks

Scalable Source Routing

Peer-to-Peer Data Management

GRIDB: A SCALABLE DISTRIBUTED DATABASE SHARING SYSTEM FOR GRID ENVIRONMENTS *

Enhancing Secure File Transfer by Analyzing Repeated Server Based Strategy using Gargantuan Peers (G-peers)

IEEE/ACM TRANSACTIONS ON NETWORKING 1

T he Electronic Magazine of O riginal Peer-Reviewed Survey Articles ABSTRACT

Research on P2P-SIP based VoIP system enhanced by UPnP technology

RVS-Seminar Overlay Multicast Quality of Service and Content Addressable Network (CAN)

The p2pweb model: a glue for the Web

Information Searching Methods In P2P file-sharing systems

Discovery and Routing in the HEN Heterogeneous Peer-to-Peer Network

SOLVING LOAD REBALANCING FOR DISTRIBUTED FILE SYSTEM IN CLOUD

Enhance Load Rebalance Algorithm for Distributed File Systems in Clouds

Mobile P2PSIP. Peer-to-Peer SIP Communication in Mobile Communities

P2P Characteristics and Applications

Ant-based Load Balancing Algorithm in Structured P2P Systems

Join and Leave in Peer-to-Peer Systems: The DASIS Approach

Anonymous Communication in Peer-to-Peer Networks for Providing more Privacy and Security

Plaxton routing. Systems. (Pastry, Tapestry and Kademlia) Pastry: Routing Basics. Pastry: Topology. Pastry: Routing Basics /3

Identity Theft Protection in Structured Overlays

Object Request Reduction in Home Nodes and Load Balancing of Object Request in Hybrid Decentralized Web Caching

How To Make A Network Overlay More Efficient

P2P: centralized directory (Napster s Approach)

Transcription:

Kurt Tutschku Vertretung - Professur Rechnernetze und verteilte Systeme Chord - A Distributed Hash Table

Outline Lookup problem in Peer-to-Peer systems and Solutions Chord Algorithm Consistent Hashing Scalable Key Location Node joins Stabilization Summary

Peer-to-Peer Systems Peer-to-Peer System: self-organizing system of equal, autononous entities (peers) decentralized resource usage decentraliced self-organization where to store? where to get? Solutions centralized servers flooding search distributed Hash Tables

Solutions to lookup problem centralized servers Maintain the current location of data items in a central server Search complexity O() Central server becomes crucial Best for simple and small applications flooding search Broadcast a request for an item among the nodes No additional routing informations High bandwidth consumption Search complexity O(N ) Results are not guaranteed

Solutions to lookup problem distributed hash tables A global view of data distributed among many nodes. Mapping nodes and data items into a common address space Each DHT node manages a small number of references to other nodes Queries are routed via a small number of nodes to the target node Load for retrieving items should be balanced equally among all nodes Robust against random failure and attacks Provides a definitive answer about results 5

Chord Algorithm Consistent Hashing supports just one operation: given a key, it maps the key onto a node. Consistent Hashing Assign each node and key an m-bit identifier using a base hash function such as SHA- Identifiers are ordered in an identifier circle modulo m (Chord ring) Key k is assigned to the first node whose identifier is equal to or follows k.

Chord Algorithm Consistent Hashing identifier space : m= node key 0 0 identifier circle 5

Chord Algorithm Simple Key Lookup Simple Key Lookup Queries are passed around the circle via successor pointers Requires traversing all Nodes to find the appropriate mapping Node 0 sends a query for key successor(0) = 0 successor() = successor() = 0 5 successor() = 8

Chord Algorithm Scalable Key Location Finger Table Each node n maintains a routing table with up to m entries The i th entry in the table at node n contains the identifier of the first node s that succeeds n by at least i- on the identifier circle.(s = successor(n+ i- )). s is called the i th finger of node n. Definition of variables for node n 9

Chord Algorithm Scalable Key Location Finger table m =, each node n maintains at most entries For. + 0 [,0) 0 + 0 [0,) + [,) 0 5 0 For. 0+ 0 [,) 0+ [,) 0+ [,0) 5 For. + 0 [,5) + 5 [5,) + [,) 0 0

Chord Algorithm Scalable Key Location Pseudocode to find the successor node of an identifier Find id s successor by finding the immediate predecessor of the id Walk clockwise to find the node which precedes id and whose successor succeeds id Start with the m th finger of node n See if it comes between node n and the id, if not, check the m- th finger until we find one wich does. This is the closest node preceding id among all the fingers of n

Chord Algorithm Scalable Key Location id=5 n= 0 [0,) 0 [,) 0 [,) Successor 0 Predecessor 0 [,) [,) [,0) Successor Predecessor 5 [5,) [,0) 0 [0,) 0 successor(5) = 5 [,5) 5 [5,) [,) Successor Predecessor 0 Successor Predecessor O(logN)

Chord Algorithm - Node joins Invariants to be preserve Each node s successor is correctly maintained For every key k, node successor(k) is responsible for k It is desirable for the finger tables to be correct Tasks to be performed by Chord Initialize the predecessor and fingers of node n Update the fingers and predecessor of existing nodes to reflect the addition of n Notify the higher layer software so that it can transfer state associated with keys that node n is now responsible for

Chord Algorithm - Node joins Initializing fingers and predecessor 0 [0,) 0 [,) 0 [,) Successor 0 Predecessor 5 find_successor(); 0 [,) [,) [,0) Successor Predecessor [,) [,) [,5) 5 [,5) 5 [5,) [,) Successor Predecessor 0 Successor Predecessor

Chord Algorithm - Node joins Updating fingers of existing nodes 0 [0,) 0 [,) 0 [,) Successor 0 Predecessor 5 0 [,) [,) [,0) 5 Successor Predecessor [,) [,) [,5) Successor Predecessor 5 P = find_predecessor(n- i- ) i =, P = find_predecessor() i =, P = find_predecessor() O(log N) i =, P = find_predecessor() [,5) 5 5 [5,) 5 [,) Successor 5 Predecessor 0 5

Chord Algorithm - Node joins Transferring Keys 0 [0,) 0 [,) 0 [,) Successor 0 Predecessor 5 0 [,) [,) [,0) Successor Predecessor [,) [,) [,5) Successor Predecessor 5 [,5) 5 5 [5,) 5 [,) Successor 5 Predecessor 0

Chord Algorithm node joins Pseudocode for the node join operation

Chord Algorithm - Stabilization Stabilization Correctness and performance Keep node s successor pointers up to date Use successor pointers to verify correct finger table entries 8

Pseudocode for stabilization Chord Algorithm - Stabilization Join does not make the rest of the network aware of n Every node runs stabilize periodically, to verify the successor Node n asks its successor for the successor s predecessor x. See if x should be n s successor instead. (happens if x recently joined the system) Notify n s successor of n s exist. Successor changes its predecessor to n if it knows no closer predecessor than n. Use successor pointers to update finger tables. 9

Chord Algorithm Node Failure Node Failure Successor-list If successor fails, replaces it with the first live entry in the list Later run stabilize to correct finger table and successor-list 0

Summary Characteristics of Chord Load balance distributed hash table Decentralization fully distributed Scalability cost of lookup grows logarithmic Routing Hops O(logN) Arrival O(log N) Departure O(log N) Availability automatically adjusts internal tables Flexible naming no constrains on the structure of the keys

References I. Stoica, R. Morris, D. Karger, F. Kaashoek, and H. Balakrishnan. Chord: A scalable Peer-To-Peer lookup service for internet applications. In Proceedings of the 00 ACM SIGCOMM Conference, pages 9 0, 00. R. Steinmetz, K. Wehrle (Edt.): "Peer-to-Peer Systems and Applications", LNCS 85, Springer, Chapter -8, 005. http://www.wikipedia.org http://www.google.com

Thank You Questions?