Distributed K-Ary System

Similar documents
Self-Correcting Broadcast in Distributed Hash Tables

A Framework for Peer-To-Peer Lookup Services based on k-ary search

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

Distributed Hash Tables

Building a transactional distributed

A Relaxed-Ring for Self-Organising and Fault-Tolerant Peer-to-Peer Networks

In our view, one of the cost-ecient approaches to building high-performance and scalable web-sites, CDNs and Web-hosting systems, is to integrate seve

Distributed k-ary System: Algorithms for Distributed Hash Tables

LECT-05, S-1 FP2P, Javed I.

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

Scalability In Peer-to-Peer Systems. Presented by Stavros Nikolaou

ReCord: A Distributed Hash Table with Recursive Structure

Goals. EECS 122: Introduction to Computer Networks Overlay Networks and P2P Networks. Solution. Overlay Networks: Motivations.

Architectures for Distributed Systems

Overlay and P2P Networks. Structured Networks and DHTs. Prof. Sasu Tarkoma

Page 1. How Did it Start?" Model" Main Challenge" CS162 Operating Systems and Systems Programming Lecture 24. Peer-to-Peer Networks"

Kademlia: A P2P Informa2on System Based on the XOR Metric

416 Distributed Systems. Mar 3, Peer-to-Peer Part 2

Peer-to-Peer Systems and Distributed Hash Tables

Securing Chord for ShadowWalker. Nandit Tiku Department of Computer Science University of Illinois at Urbana-Champaign

An Adaptive Stabilization Framework for DHT

Lecture 6: Overlay Networks. CS 598: Advanced Internetworking Matthew Caesar February 15, 2011

Saarland University Faculty of Natural Sciences and Technology I Department of Computer Science. Masters Thesis

Distributed Meta-data Servers: Architecture and Design. Sarah Sharafkandi David H.C. Du DISC

CS 347 Parallel and Distributed Data Processing

Building a low-latency, proximity-aware DHT-based P2P network

CompSci 356: Computer Network Architectures Lecture 21: Overlay Networks Chap 9.4. Xiaowei Yang

P2P: Distributed Hash Tables

Peer to Peer Networks

Today. Why might P2P be a win? What is a Peer-to-Peer (P2P) system? Peer-to-Peer Systems and Distributed Hash Tables

Page 1. Key Value Storage"

Flooded Queries (Gnutella) Centralized Lookup (Napster) Routed Queries (Freenet, Chord, etc.) Overview N 2 N 1 N 3 N 4 N 8 N 9 N N 7 N 6 N 9

L3S Research Center, University of Hannover

*Adapted from slides provided by Stefan Götz and Klaus Wehrle (University of Tübingen)

PEER-TO-PEER NETWORKS, DHTS, AND CHORD

Part 1: Introducing DHTs

Overlay networks. To do. Overlay networks. P2P evolution DHTs in general, Chord and Kademlia. Turtles all the way down. q q q

L3S Research Center, University of Hannover

Distributed Hash Tables

EE 122: Peer-to-Peer (P2P) Networks. Ion Stoica November 27, 2002

08 Distributed Hash Tables

: Scalable Lookup

Peer to Peer Networks

Peer to Peer I II 1 CS 138. Copyright 2015 Thomas W. Doeppner, Rodrigo Fonseca. All rights reserved.

8 Supervised Overlay Networks

CIS 700/005 Networking Meets Databases

EECS 122: Introduction to Computer Networks Overlay Networks and P2P Networks. Overlay Networks: Motivations

EE 122: Peer-to-Peer Networks

CS 640 Introduction to Computer Networks. Today s lecture. What is P2P? Lecture30. Peer to peer applications

Content Overlays. Nick Feamster CS 7260 March 12, 2007

Aggregation of a Term Vocabulary for P2P-IR: a DHT Stress Test

Distributed Hash Tables: Chord

Distributed Hash Tables

Overlay Networks: Motivations. EECS 122: Introduction to Computer Networks Overlay Networks and P2P Networks. Motivations (cont d) Goals.

A Practical Approach to Network Size Estimation for Structured Overlays

March 10, Distributed Hash-based Lookup. for Peer-to-Peer Systems. Sandeep Shelke Shrirang Shirodkar MTech I CSE

Chord. Advanced issues

Telematics Chapter 9: Peer-to-Peer Networks

*Adapted from slides provided by Stefan Götz and Klaus Wehrle (University of Tübingen)

Finding Data in the Cloud using Distributed Hash Tables (Chord) IBM Haifa Research Storage Systems

Distributed Hash Tables (DHT)

Should we build Gnutella on a structured overlay? We believe

An Expresway over Chord in Peer-to-Peer Systems

MULTI-DOMAIN VoIP PEERING USING OVERLAY NETWORK

Searching for Shared Resources: DHT in General

Finding Data in the Cloud using Distributed Hash Tables (Chord) IBM Haifa Research Storage Systems

Overlay networks. Today. l Overlays networks l P2P evolution l Pastry as a routing overlay example

Early Measurements of a Cluster-based Architecture for P2P Systems

Overlay networks. T o do. Overlay networks. P2P evolution DHTs in general, Chord and Kademlia. q q q. Turtles all the way down

Handling Churn in a DHT

Peer-To-Peer Techniques

CSCI-1680 P2P Rodrigo Fonseca

CRESCENDO GEORGE S. NOMIKOS. Advisor: Dr. George Xylomenos

Distributed File Systems: An Overview of Peer-to-Peer Architectures. Distributed File Systems

Distributed hash table - Wikipedia, the free encyclopedia

Scaling Out Systems. COS 518: Advanced Computer Systems Lecture 6. Kyle Jamieson

Aggregation of a Term Vocabulary for Peer-to-Peer Information Retrieval: a DHT Stress Test

Module SDS: Scalable Distributed Systems. Gabriel Antoniu, KERDATA & Davide Frey, ASAP INRIA

15-744: Computer Networking P2P/DHT

Introduction to Peer-to-Peer Systems

CPSC 426/526. P2P Lookup Service. Ennan Zhai. Computer Science Department Yale University

Semester Thesis on Chord/CFS: Towards Compatibility with Firewalls and a Keyword Search

Distributed Hash Table

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

Structured Peer-to-Peer Networks

GNUnet Distributed Data Storage

Searching for Shared Resources: DHT in General

DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES

Peer-to-peer systems

Peer-to-Peer (P2P) Systems

Kademlia: A peer-to peer information system based on XOR. based on XOR Metric,by P. Maymounkov and D. Mazieres

Lecture 8: Application Layer P2P Applications and DHTs

R/Kademlia: Recursive and Topology-aware Overlay Routing

Large-Scale Data Stores and Probabilistic Protocols

Peer-to-Peer Systems. Network Science: Introduction. P2P History: P2P History: 1999 today

Simulations of Chord and Freenet Peer-to-Peer Networking Protocols Mid-Term Report

Enhanced Paxos Commit for Transactions on DHTs

Three Layer Hierarchical Model for Chord

A Directed-multicast Routing Approach with Path Replication in Content Addressable Network

Peer-to-Peer Protocols and Systems. TA: David Murray Spring /19/2006

Transcription:

A seminar presentation Arne Vater and Prof. Schindelhauer Professorship for Computer Networks and Telematik Department of Computer Science University of Freiburg 2007-03-01

Outline 1 2 3 4 5

Outline 1 2 3 4 5

What can DKS do? Distributed Hash Table (DHT) store and retrieve key/value-pairs Message Passing Broadcast Multicast Fault Tolerance Protect against failures Degree of tolerance is congurable

Why is that interesting? DHTs are a research subject First academic papers in 2001 DKS claims to formalize a class of approaches Chord Pastry Kademlia This implies optimization!

Outline Basic structure Addressing problem Intervals and Levels Example 1 2 3 4 5

Basic structure Basic structure Addressing problem Intervals and Levels Example Overlay network Three parameters: N, k, f N= maximum number of nodes Ring structure k= search tree arity contact any node in log k N steps f = fault tolerance every key stored f times (f -1) nodes may fail

Denitions Basic structure Addressing problem Intervals and Levels Example Denition: Modulo arithmetic a b = (a + b) modulo N Denition: Distance d(a, b) = b a Clockwise! Denition: Successor S(x) First node starting at x S(x) = x min{d(x, y) y P}

Denitions Basic structure Addressing problem Intervals and Levels Example Denition: Next successor succ First node after x succ = S(x 1) Denition: Predecessor pred First node before x Last node after x pred = x max{d(x, y) y P}

Basic Structure Basic structure Addressing problem Intervals and Levels Example Every node has a route to its next successor predecessor A route is overlay address (node number) underlay address (TCP/IP)

Addressing problem Basic structure Addressing problem Intervals and Levels Example How can two nodes communicate? Does node x exist? What is its underlay address?

Addressing problem Basic structure Addressing problem Intervals and Levels Example How can two nodes communicate? Does node x exist? What is its underlay address?

Addressing problem Basic structure Addressing problem Intervals and Levels Example How can two nodes communicate? Does node x exist? What is its underlay address?

Addressing problem Basic structure Addressing problem Intervals and Levels Example How can two nodes communicate? Does node x exist? Talk to successor What is its underlay address? His predecessor knows Pass message around Inecient! We need more routes!

Addressing problem Basic structure Addressing problem Intervals and Levels Example How can two nodes communicate? Does node x exist? Talk to successor What is its underlay address? His predecessor knows Pass message around Inecient! We need more routes!

Addressing problem Basic structure Addressing problem Intervals and Levels Example How can two nodes communicate? Does node x exist? Talk to successor What is its underlay address? His predecessor knows Pass message around Inecient! We need more routes!

Addressing problem Basic structure Addressing problem Intervals and Levels Example How can two nodes communicate? Does node x exist? Talk to successor What is its underlay address? His predecessor knows Pass message around Inecient! We need more routes!

Idea: Add more routes Basic structure Addressing problem Intervals and Levels Example Idea: Each node divides the network in k intervals

Idea: Add more routes Basic structure Addressing problem Intervals and Levels Example Idea: Each node divides the network in k intervals Store a pointer to the successor of each interval But any node in the interval is okay, too Send to closest node Remember: Distance is clockwise Dont overshoot

Idea: Add more routes Basic structure Addressing problem Intervals and Levels Example Denition: Successor of an interval First node in Interval [n, m[: if S(n) < m else S([n, m[) = S(n) S([n, m[) = nil

Idea: Add more routes Basic structure Addressing problem Intervals and Levels Example So far max. hops N k hops instead of N Apply recursively to rst interval each hop divides distance by k L = log k N levels max. L hops Routing table size k L This view is unique for each node (!)

View is unique for each node N=16, k=2, node 0 Basic structure Addressing problem Intervals and Levels Example

View is unique for each node N=16, k=2, node 1 Basic structure Addressing problem Intervals and Levels Example

View is unique for each node N=16, k=2, node 2 Basic structure Addressing problem Intervals and Levels Example

View is unique for each node N=16, k=2, node 3 Basic structure Addressing problem Intervals and Levels Example

View is unique for each node N=16, k=2, node 4 Basic structure Addressing problem Intervals and Levels Example

Idea: Add more routes Basic structure Addressing problem Intervals and Levels Example Image from: Ali Ghodsi. Distributed k-ary System: Algorithms for Distributed Hash Tables, PhD dissertation, KTH-Royal Institute of Technology, December 2006.

Basic structure Addressing problem Intervals and Levels Example Example: Send Message from 0 to S(13) N=16, k=2 Send message from 0 to S(13) Node 0 does not know wether 13 exists. Send message to closest node in routing table: Node 0 sends to node 10

Basic structure Addressing problem Intervals and Levels Example Example: Send Message from 0 to S(13) N=16, k=2 Send message from 0 to S(13) Node 0 does not know wether 13 exists. Send message to closest node in routing table: Node 0 sends to node 10 Node 10 sends to node 11

Basic structure Addressing problem Intervals and Levels Example Example: Send Message from 0 to S(13) N=16, k=2 Send message from 0 to S(13) Node 0 does not know wether 13 exists. Send message to closest node in routing table: Node 0 sends to node 10 Node 10 sends to node 11 Node 11 knows node 13 does not exist (as 11.succ = 14) Node 11 sends to S(13) = 14

Basic structure Addressing problem Intervals and Levels Example Example: Send Message from 0 to S(13) N=16, k=2 Send message from 0 to S(13) 3 messages (0 to 10, 10 to 11, 11 to 14) log k N = 4

Basic structure Addressing problem Intervals and Levels Example Any questions so far?

Outline Distributed Hash Table Message passing 1 2 3 4 5

Distributed Hash Table Distributed Hash Table Message passing Store and retrieve key/value-pairs Known Hash-function maps key to identier H(key) [0, N[ Store key/value-pair at node S(H(key)) Node n is responsible for key Image taken from DKS presentation by Ali Ghodsi, Seif Haridi, Luc Onana at http://dks.sics.se Store/retrieve: send a message to responsible node

Distributed Hash Table Distributed Hash Table Message passing One DKS can store multiple DHTs If a new node joins, it fetches all key/value-pairs it is responsible for from its successor Image taken from DKS presentation by Ali Ghodsi, Seif Haridi, Luc Onana at http://dks.sics.se

Broadcast Distributed Hash Table Message passing Send message to all Level l = 1 nodes These recursively send to all Level l + 1 nodes Each node sends max. log k N messages Reaches N nodes with N Messages

Multicast Distributed Hash Table Message passing Join multicast group Broadcast to group Image taken from DKS presentation by Ali Ghodsi, Seif Haridi, Luc Onana at http://dks.sics.se

Outline Joining Leaving Correction-on-use Failures 1 2 3 4 5

What about Dynamism? Joining Leaving Correction-on-use Failures Nodes can join leave fail

Joining Joining Leaving Correction-on-use Failures Joining node must know at least one existing node Joining node is assigned identier n Joining node n contacts e = succ(n) Insertation like in double-linked list Transfer identiers in ]p, n] to n

Joining: forwarding and locking Joining Leaving Correction-on-use Failures While n joins, e forwards all messages from p to n (step 4) Lookups stay consistent p tells e when its done Locking ensures consistency Each node hosts a lock n locks itself in step 1 n tries to lock e in step 2 in step 5, both locks are released

Joining: populate routing table Joining Leaving Correction-on-use Failures Next successor e sends approximate routings table to n Any node in a given interval is ok Node n can lookup better nodes, if it wants to Node n tells all nodes in its routing table that it points to them They store node n in their backlist

Leaving Joining Leaving Correction-on-use Failures Node q wants to leave Leaving like in double-linked lists Node q starts transferring all identiers to r Node q tells all nodes in its routing table and backlist that it is leaving

Leaving: forwarding and locking Joining Leaving Correction-on-use Failures Node q rst locks itself, then its successor If q > r : Node q locks its successor, then itself Freedom of Deadlocks, Livelocks Node q forwards all messages to its successor Lookup consistency Node q releases all locks when done

Correction-on-use Joining Leaving Correction-on-use Failures No periodic stabilization! Each time a message is sent, embed level and interval. Receiving node can tell if information is correct If not, tell sender Network corrects itself Needs enough user trac

Correction-on-use Joining Leaving Correction-on-use Failures No periodic stabilization Each time a message is sent, embed level and interval. Receiving node can tell if information is correct If not, tell sender Network corrects itself Needs enough user trac

Correction-on-use Joining Leaving Correction-on-use Failures No periodic stabilization! Each time a message is sent, embed level and interval. Receiving node can tell if information is correct If not, tell sender Network corrects itself Needs enough user trac

Handling Failures Joining Leaving Correction-on-use Failures Each node maintains successor list of length f quick replacement when next successor fails same for predecessor list

Symmetric Replication Joining Leaving Correction-on-use Failures Each information is stored f times At nodes n i N f, i N 0 All nodes n N are responsible f for the same set of identiers Store in DHT: send f messages Problem of race conditions not mentioned anywhere

Outline 1 2 3 4 5

Routing table size k log k N Lookup node with max. log k N messages Optimal Broadcast with max log k N messages per node Handles concurrency in joins, leaves Problems with concurrency in replication

Bibliography Alima, L.O. and El-Ansary, S. and Brand, P. and Haridi, S. DKS (N, k, f): A Family of Low Communication, Scalable and Fault-Tolerant Infrastructures for P2P 3rd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID), 2003 Ali Ghodsi Distributed k-ary System: Algorithms for Distributed Hash Table KTH Royal Institute of Technology, 2006 Stockholm, Sweden

Bibliography Ghodsi, A. and Alima, L.O. and Haridi, S. Symmetric Replication for Structured Peer-to-Peer Systems The 3rd Int Workshop on Databases, Information Systems and Peer-to-Peer Computing, Trondheim, 2005 Ghodsi, A. and Alima, L.O. and Haridi, S. Low-Bandwidth Topology Maintenance for Robustness in Structured Overlay NetworksProceedings of the Proceedings of the 38th Annual Hawaii International Conference on System Sciences (HICSS'05)-Track, 2005 IEEE Computer Society Washington, DC, USA

Bibliography El-Ansary, S. A Framework For The Understanding, Optimization and Design Of Structured Peer-To-Peer Systems Ph. D. thesis, Swedish Institute of Computer Science (SICS) Kista, Sweden, 2003

That's all folks! Thank you for your attention! Any questions?