P2P Network Structured Networks (IV) Distributed Hash Tables Pedro García López Universitat Rovira I Virgili

Slides:



Advertisements
Similar presentations
Peer-to-Peer Infrastructure and Applications Andrew Herbert Microsoft Research, Cambridge
Advertisements

Distributed Hash Tables
Distributed Hash Tables: An Overview
P2P data retrieval DHT (Distributed Hash Tables) Partially based on Hellerstein’s presentation at VLDB2004.
Pastry Peter Druschel, Rice University Antony Rowstron, Microsoft Research UK Some slides are borrowed from the original presentation by the authors.
Peer-to-Peer (P2P) Distributed Storage 1Dennis Kafura – CS5204 – Operating Systems.
Chord: A scalable peer-to- peer lookup service for Internet applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashock, Hari Balakrishnan.
P2P Network Structured Networks: Distributed Hash Tables Pedro García López Universitat Rovira I Virgili
Xiaowei Yang CompSci 356: Computer Network Architectures Lecture 22: Overlay Networks Xiaowei Yang
Distributed Hash Tables CPE 401 / 601 Computer Network Systems Modified from Ashwin Bharambe and Robert Morris.
*Towards A Common API for Structured Peer-to-Peer Overlays Frank Dabek, Ben Y. Zhao, Peter Druschel, John Kubiatowicz, Ion Stoica MIT, U. C. Berkeley,
Pastry Peter Druschel, Rice University Antony Rowstron, Microsoft Research UK Some slides are borrowed from the original presentation by the authors.
Outline for today Structured overlay as infrastructures Survey of design solutions Analysis of designs.
1 Towards a Common API for Structured Peer-to-Peer Overlays Frank Dabek, Ben Zhao, Peter Druschel, John Kubiatowicz, Ion Stoica Presented for Cs294-4 by.
Applications over P2P Structured Overlays Antonino Virgillito.
What is a P2P system? A distributed system architecture: No centralized control Nodes are symmetric in function Large number of unreliable nodes Enabled.
P2P: Advanced Topics Filesystems over DHTs and P2P research Vyas Sekar.
Spring 2003CS 4611 Peer-to-Peer Networks Outline Survey Self-organizing overlay network File system on top of P2P network Contributions from Peter Druschel.
Chord-over-Chord Overlay Sudhindra Rao Ph.D Qualifier Exam Department of ECECS.
Topics in Reliable Distributed Systems Fall Dr. Idit Keidar.
1 CS 194: Distributed Systems Distributed Hash Tables Scott Shenker and Ion Stoica Computer Science Division Department of Electrical Engineering and Computer.
CITRIS Poster Supporting Wide-area Applications Complexities of global deployment  Network unreliability.
Peer To Peer Distributed Systems Pete Keleher. Why Distributed Systems? l Aggregate resources! –memory –disk –CPU cycles l Proximity to physical stuff.
1 Peer-to-Peer Networks Outline Survey Self-organizing overlay network File system on top of P2P network Contributions from Peter Druschel.
Tapestry: A Resilient Global-scale Overlay for Service Deployment Ben Y. Zhao, Ling Huang, Jeremy Stribling, Sean C. Rhea, Anthony D. Joseph, and John.
File Sharing : Hash/Lookup Yossi Shasho (HW in last slide) Based on Chord: A Scalable Peer-to-peer Lookup Service for Internet ApplicationsChord: A Scalable.
*Towards A Common API for Structured Peer-to-Peer Overlays Frank Dabek, Ben Y. Zhao, Peter Druschel, John Kubiatowicz, Ion Stoica MIT, U. C. Berkeley,
1 Koorde: A Simple Degree Optimal DHT Frans Kaashoek, David Karger MIT Brought to you by the IRIS project.
Storage management and caching in PAST PRESENTED BY BASKAR RETHINASABAPATHI 1.
Tapestry GTK Devaroy (07CS1012) Kintali Bala Kishan (07CS1024) G Rahul (07CS3009)
Arnold N. Pears, CoRE Group Uppsala University 3 rd Swedish Networking Workshop Marholmen, September Why Tapestry is not Pastry Presenter.
Peer-to-Peer Overlay Networks. Outline Overview of P2P overlay networks Applications of overlay networks Classification of overlay networks – Structured.
Distributed Systems Concepts and Design Chapter 10: Peer-to-Peer Systems Bruce Hammer, Steve Wallis, Raymond Ho.
Introduction to Peer-to-Peer Networks. What is a P2P network A P2P network is a large distributed system. It uses the vast resource of PCs distributed.
Content Overlays (Nick Feamster). 2 Content Overlays Distributed content storage and retrieval Two primary approaches: –Structured overlay –Unstructured.
Chord & CFS Presenter: Gang ZhouNov. 11th, University of Virginia.
Overlay network concept Case study: Distributed Hash table (DHT) Case study: Distributed Hash table (DHT)
Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications Xiaozhou Li COS 461: Computer Networks (precept 04/06/12) Princeton University.
1 Distributed Hash Tables (DHTs) Lars Jørgen Lillehovde Jo Grimstad Bang Distributed Hash Tables (DHTs)
CS 3700 Networks and Distributed Systems Overlay Networks (P2P DHT via KBR FTW) Revised 4/1/2013.
Peer-to-Peer Name Service (P2PNS) Ingmar Baumgart Institute of Telematics, Universität Karlsruhe IETF 70, Vancouver.
1 More on Plaxton routing There are n nodes, and log B n digits in the id, where B = 2 b The neighbor table of each node consists of - primary neighbors.
P2P Network Structured Networks: Distributed Hash Tables Pedro García López Universitat Rovira I Virgili
Distributed Hash Tables CPE 401 / 601 Computer Network Systems Modified from Ashwin Bharambe and Robert Morris.
1 Peer-to-Peer Technologies Seminar by: Kunal Goswami (05IT6006) School of Information Technology Guided by: Prof. C.R.Mandal, School of Information Technology.
Paper Survey of DHT Distributed Hash Table. Usages Directory service  Very little amount of information, such as URI, metadata, … Storage  Data, such.
Peer to Peer A Survey and comparison of peer-to-peer overlay network schemes And so on… Chulhyun Park
1 Secure Peer-to-Peer File Sharing Frans Kaashoek, David Karger, Robert Morris, Ion Stoica, Hari Balakrishnan MIT Laboratory.
Lecture 12 Distributed Hash Tables CPE 401/601 Computer Network Systems slides are modified from Jennifer Rexford.
1 Distributed Hash Table CS780-3 Lecture Notes In courtesy of Heng Yin.
Peer to Peer Network Design Discovery and Routing algorithms
P2P Networks Introduction Pedro García López Universitat Rovira I Virgili
Algorithms and Techniques in Structured Scalable Peer-to-Peer Networks
LOOKING UP DATA IN P2P SYSTEMS Hari Balakrishnan M. Frans Kaashoek David Karger Robert Morris Ion Stoica MIT LCS.
Bruce Hammer, Steve Wallis, Raymond Ho
Large Scale Sharing Marco F. Duarte COMP 520: Distributed Systems September 19, 2004.
Nick McKeown CS244 Lecture 17 Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications [Stoica et al 2001]
CS694 - DHT1 Distributed Hash Table Systems Hui Zhang University of Southern California.
Fabián E. Bustamante, Fall 2005 A brief introduction to Pastry Based on: A. Rowstron and P. Druschel, Pastry: Scalable, decentralized object location and.
Chapter 29 Peer-to-Peer Paradigm Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Peer-to-Peer Information Systems Week 12: Naming
Distributed Hash Tables
Peer-to-Peer Data Management
A Common API for Structured Peer-to-Peer Overlays
CHAPTER 3 Architectures for Distributed Systems
DHT Routing Geometries and Chord
Building Peer-to-Peer Systems with Chord, a Distributed Lookup Service
Distributed Hash Tables
Koorde: A Simple Degree Optimal DHT
Peer-to-Peer Information Systems Week 12: Naming
Presentation transcript:

P2P Network Structured Networks (IV) Distributed Hash Tables Pedro García López Universitat Rovira I Virgili

Index Koorde: Degree optimal DHT Constructing overlay applications and services

Koorde: Degree Optimal DHT Parallel Architectures: Hypercubes, Butterflies, De Bruijn graphs, … Koorde is a degree optimal DHT based on De Bruijn graphs It is very difficult to improve this !!! –O(1) degree & O(log) routing

De Bruijn graph Each node connects to node 2m mod 2 b and node 2m+1 mod 2 b (2 links !!!) –Node x = 001 (1) 2m (x<<1): 2 2m + 1 (x<<1 +1): b=3

Routing in the graph m.lookup(k,ks) if k=m return m else t=m  topbit(ks) return t.lookup(k,ks<<1) b=3

De Bruijn Overlay Difficult to maintain and construct Technique to construct koorde: –DeBruijn ring –Each node has 2 links: succesor link De Bruijn 2m link –But: Where is the 2m +1 ?? We have to change the routing protocol

Koorde ring

Koorde routing m.lookup(k,ks,i) 1if k  (m, m.successor] return successor 2else if i  (m, m.successor] 3 return d.lookup(k,ks<<1, i  topbit(ks)) 4 else 5 return m.successor.lookup(k,ks,i) 1)If my succesor is the responsible of the key return successor 2)If exists the De Bruijn 2m link from this node to imaginary node I take the 2m hop i = 3, m = 2 OK (2-6-3 in De Bruijn) i = 5 m = 2 NO ! (5 =2*2 +1, Koorde only has 2m links !) 5) If I do not find a De Bruijn hop, I go to the successor node.

Improvement This aproach is inefficient O(3b) Example: 2 (010)->6 (110) –De Bruijn Routing (2,5,3,7)( ) –2.Lookup(6,6,i=5) 2->3->4(i=5)->0(i=3)->1->2(i=3)->4-> 5 ->6 !!!!!!!!! Improvement:select the i that is closer to the target and is in range (m,msucc) –2.lookup(6,6,i=3) 2->4-> 5 ->6

Koorde Base-K De Bruijn Base K –km mod k b –km+1 mod k b –… –km+(k-1) mod k b b= b=2 k=

Constructing overlay applications and services Decentralization Scalability Anonimity Self-organization (autonomic communications) Ad-hoc connectivity Shared resource aggregation Performance Security Fault Tolerance GOALS:

Distributed Hash Tables A hash table links data with keys –The key is hashed to find its associated bucket in the hash table –Each bucket expects to have #elems/#buckets elements In a Distributed Hash Table (DHT), physical nodes are the hash buckets –The key is hashed to find its responsible node –Data and load are balanced among nodes keypos 0 0 hash function N x x y y z z lookup lookup (key) → data insert (key, data) lookup lookup (key) → data insert (key, data) “Star Trek” 2 Hash Table hash bucket h(key)%N node keypos hash function lookup lookup (key) → data insert (key, data) lookup lookup (key) → data insert (key, data) “Star Trek” 2 h(key)%N N-1

DHT applications File sharing [CFS, OceanStore, PAST, …] Web cache [Squirrel, Coral] Censor-resistant stores [Eternity, FreeNet, …] Application-layer multicast [Narada, …] Event notification [Scribe] Streaming (SplitStream) Naming systems [ChordDNS, INS, …] Query and indexing [Kademlia, …] Communication primitives [I3, …] Backup store [HiveNet] Web archive [Herodotus] Suggestions ?

Structured Overlays They are: –Scalable, self-organizing overlay networks –Provide routing to location-independent names –Examples: CAN, Chord, Pastry, Tapestry, … Basic operation: –Large sparse namespace N (integers: 0–2 128 or 0–2 160 ) –Nodes in overlay network have nodeIds € N –Given k € N, a deterministic function maps k to its root node (a live node in the network) – route (msg, k) delivers msg to root(k)

Towards a Common API Easily supportable by old and new protocols Enables application portability between protocols Enables common benchmarks Provides a framework for reusable components Achieves Interoperability between heterogeneous protocols

A Layered Approach: Common API Tier 2 Tier 1 Tier 0 Key-based Routing Layer (KBR) DHTCASTDOLR CFSI3ScribeSplitStreamBayeuxOceanStorePAST

Functional Layers DHT (Distributed Hash Table) – put (key,data), value = get (key) –Hashtable layered across network –Handles replication; distributes replicas randomly –Routes queries towards replicas by name DOLR (Decentralized Object Location and Routing) – publish (objectId), route (msg, nodeId), r outeObj (msg, objectId, n) –Application controls replication and placement –Cache location pointers to replicas; queries quickly intersect pointers and redirect to nearby replica(s)

API (Routing) Data types –Key, nodeId = 160 bit integer –Node = Address (IP + port #), nodeId –Msg: application-specific msg of arbitrary size Invoking routing functionality – Route (key, msg, [node]) route message to node currently responsible for key Non-blocking, best effort – message may be lost or duplicated. node: transport address of the node last associated with key (proposed first hop, optional)

API nextHopSet = local_lookup(key, num, safe) –Returns a set of at most num nodes from the local routing table that are possible next hops towards the key. –Safe: whether choice of nodes is randomly chosen nodehandle[ ] = neighborSet(max_rank) –Returns unordered set of nodes as neighbors of the current node. –Neighbor of rank i is responsible for keys on this node should all neighbors of rank < i fail nodehandle[ ] = replicaSet(key, num) –Returns ordered set of up to num nodes on which replicas of the object with key key can be stored. –Result is subset of neighborSet plus local node boolean = range(node, rank, lkey, rkey) –Returns whether current node would be responsible for the range specified by lkey and rkey, should the previous rank-1 nodes fail.

API (Upcalls) Deliver(key, msg) –Delivers an incoming message to the application. One application per node. Forward(key, msg, nextHopNode) –Synchronous upcall invoked at each node along route –On return, will forward msg to nextHopNode –App may modify key, msg, nextHopNode, or terminate by setting nextHopNode to NULL. Update(node, boolean joined) –Upcall invoked to inform app of a change in the local node’s neighborSet, either a new node joining or an old node leaving.

Common API ideas It is a paper, not a standard ! –Towards a Common API for Structured Peer-to- Peer Overlays. IPTPS –Dabek, Zhao, Druschel, Stoica, kubiatowitcz It is academic !! There are not comercial implementations of the Common API But: it helps to provide common concepts for developing p2p applications over structured overlays

Common API = KBR You still have to implement the DHT, replication protocols, fault tolerance, … Other approach is to construct directly applications on top of the DHT (put, get) interface. Example: OpenDHT has public XMLRPC APIs.

Ideas for applications: Fault tolerant replicated DHT Robust Service Discovery Query engine Propagation channel (CAST, BitTorrent) File Sharing tool

Open problems Range Queries over Structured Overlays –GoogleBase or P2P DataBase ? Resource handling: –Incentives Vs tragedy of the commons Security –Redundant routing –Robust systems –Trust Systems Autonomic Communications –Self-healing autonomic systems –Self-protecting autonomic systems –Self-optimizing autonomic systems –Self-configuring autonomic systems

Open problems Pervasive Computing Mobile Ad-Hoc Networks (MANET) Grid Computing Large Databases Content Distribution Networks Event-Based Systems Decentralized Collaborative Systems