1 The Design of a Robust Peer-to-Peer System Rodrigo Rodrigues, Barbara Liskov, Liuba Shrira Presented by Yi Chen Some slides are borrowed from the authors’

Slides:



Advertisements
Similar presentations
One Hop Lookups for Peer-to-Peer Overlays Anjali Gupta, Barbara Liskov, Rodrigo Rodrigues Laboratory for Computer Science, MIT.
Advertisements

P2P data retrieval DHT (Distributed Hash Tables) Partially based on Hellerstein’s presentation at VLDB2004.
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT and Berkeley presented by Daniel Figueiredo Chord: A Scalable Peer-to-peer.
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.
Kademlia: A Peer-to-peer Information System Based on the XOR Metric Petar Mayamounkov David Mazières A few slides are taken from the authors’ original.
Chord: A scalable peer-to- peer lookup service for Internet applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashock, Hari Balakrishnan.
Chord A Scalable Peer-to-peer Lookup Service for Internet Applications
Pastry Peter Druschel, Rice University Antony Rowstron, Microsoft Research UK Some slides are borrowed from the original presentation by the authors.
Web Caching Schemes1 A Survey of Web Caching Schemes for the Internet Jia Wang.
Internet Networking Spring 2006 Tutorial 12 Web Caching Protocols ICP, CARP.
Peer to Peer File Sharing Huseyin Ozgur TAN. What is Peer-to-Peer?  Every node is designed to(but may not by user choice) provide some service that helps.
CS 582 / CMPE 481 Distributed Systems
Introducing: Cooperative Library Presented August 19, 2002.
2/23/2009CS50901 Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial Fred B. Schneider Presenter: Aly Farahat.
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek and Hari alakrishnan.
Secure routing for structured peer-to-peer overlay networks (by Castro et al.) Shariq Rizvi CS 294-4: Peer-to-Peer Systems.
Topics in Reliable Distributed Systems Fall Dr. Idit Keidar.
September 24, 2007The 3 rd CSAIL Student Workshop Byzantine Fault Tolerant Cooperative Caching Raluca Ada Popa, James Cowling, Barbara Liskov Summer UROP.
Wide-area cooperative storage with CFS
1 Peer-to-Peer Networks Outline Survey Self-organizing overlay network File system on top of P2P network Contributions from Peter Druschel.
 Structured peer to peer overlay networks are resilient – but not secure.  Even a small fraction of malicious nodes may result in failure of correct.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Case Study: Amazon Dynamo Steve Ko Computer Sciences and Engineering University at Buffalo.
Thesis Proposal Data Consistency in DHTs. Background Peer-to-peer systems have become increasingly popular Lots of P2P applications around us –File sharing,
Fault Tolerance via the State Machine Replication Approach Favian Contreras.
Content Overlays (Nick Feamster). 2 Content Overlays Distributed content storage and retrieval Two primary approaches: –Structured overlay –Unstructured.
Failure Resilience in the Peer-to-Peer-System OceanStore Speaker: Corinna Richter.
Chord & CFS Presenter: Gang ZhouNov. 11th, University of Virginia.
1 The Design of a Robust Peer-to-Peer System Gisik Kwon Dept. of Computer Science and Engineering Arizona State University Reference: SIGOPS European Workshop.
Practical Byzantine Fault Tolerance
Byzantine fault-tolerance COMP 413 Fall Overview Models –Synchronous vs. asynchronous systems –Byzantine failure model Secure storage with self-certifying.
From Viewstamped Replication to BFT Barbara Liskov MIT CSAIL November 2007.
MapReduce and GFS. Introduction r To understand Google’s file system let us look at the sort of processing that needs to be done r We will look at MapReduce.
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications.
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan Presented.
SIGCOMM 2001 Lecture slides by Dr. Yingwu Zhu Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications.
Byzantine fault tolerance
Fast Crash Recovery in RAMCloud. Motivation The role of DRAM has been increasing – Facebook used 150TB of DRAM For 200TB of disk storage However, there.
1 Peer-to-Peer Technologies Seminar by: Kunal Goswami (05IT6006) School of Information Technology Guided by: Prof. C.R.Mandal, School of Information Technology.
Peer to Peer A Survey and comparison of peer-to-peer overlay network schemes And so on… Chulhyun Park
Byzantine Fault Tolerance CS 425: Distributed Systems Fall 2012 Lecture 26 November 29, 2012 Presented By: Imranul Hoque 1.
1 Secure Peer-to-Peer File Sharing Frans Kaashoek, David Karger, Robert Morris, Ion Stoica, Hari Balakrishnan MIT Laboratory.
Chord Advanced issues. Analysis Theorem. Search takes O (log N) time (Note that in general, 2 m may be much larger than N) Proof. After log N forwarding.
Chord Advanced issues. Analysis Search takes O(log(N)) time –Proof 1 (intuition): At each step, distance between query and peer hosting the object reduces.
Distributed Systems CS Consistency and Replication – Part I Lecture 10, September 30, 2013 Mohammad Hammoud.
Plethora: Infrastructure and System Design. Introduction Peer-to-Peer (P2P) networks: –Self-organizing distributed systems –Nodes receive and provide.
Chap 7: Consistency and Replication
CS 6401 Overlay Networks Outline Overlay networks overview Routing overlays Resilient Overlay Networks Content Distribution Networks.
Systems Research Barbara Liskov October Replication Goal: provide reliability and availability by storing information at several nodes.
Algorithms and Techniques in Structured Scalable Peer-to-Peer Networks
INTERNET TECHNOLOGIES Week 10 Peer to Peer Paradigm 1.
Distributed Storage Systems: Data Replication using Quorums.
CS 347Notes081 CS 347: Parallel and Distributed Data Management Notes 08: P2P Systems.
Peer-to-Peer (P2P) File Systems. P2P File Systems CS 5204 – Fall, Peer-to-Peer Systems Definition: “Peer-to-peer systems can be characterized as.
1 Example security systems n Kerberos n Secure shell.
Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications * CS587x Lecture Department of Computer Science Iowa State University *I. Stoica,
CSE 486/586 Distributed Systems Case Study: Amazon Dynamo
(slides by Nick Feamster)
Issues in Peer-to-Peer Computing
Providing Secure Storage on the Internet
DHT Routing Geometries and Chord
Peer-to-Peer (P2P) File Systems
Building Peer-to-Peer Systems with Chord, a Distributed Lookup Service
EEC 688/788 Secure and Dependable Computing
From Viewstamped Replication to BFT
EEC 688/788 Secure and Dependable Computing
Distance Vector Routing Protocols
EEC 688/788 Secure and Dependable Computing
A Scalable Peer-to-peer Lookup Service for Internet Applications
Kademlia: A Peer-to-peer Information System Based on the XOR Metric
Presentation transcript:

1 The Design of a Robust Peer-to-Peer System Rodrigo Rodrigues, Barbara Liskov, Liuba Shrira Presented by Yi Chen Some slides are borrowed from the authors’

2 Talk Outline  Existing P2P systems  Motivation for a robust P2P system  The new P2P architecture  Conclusion and future work  Discussions

3 Existing P2P Systems  Started with explosion of file sharing apps  Existing P2P systems: All nodes have identical responsibilities All communication is symmetric Volunteer nodes join and leave system at any time  Advantages: Harness idle storage and network resources Automatic load balancing Self-organization Desirable properties scale as we add nodes

4 Motivation: Support More Applications  Current applications that use P2P storage systems Assume states are in secure place Use untrusted P2P storage system to publish data E.g. content sharing  What if we want to store the state of the application in a P2P system (e.g. support writes)? E.g. digital library archiving, mail service

5 Motivation: Better Fault-Tolerance  Current P2P systems tolerate failstop failures Faulty nodes stop  Current P2P systems does not handle Byzantine failures faulty node may behave arbitrary and malicious e.g. an attacker can join the system with multiple Ids, provide fake information

6 Motivation: Efficient Lookups Current approach: Chord  Every node maintains a routing table about O(logN) entries  Routing algorithm locates data with latency O(logN), N8 N51 N42 N1 N38 N32 N21 N14 Lookup K36 N8+1: N14 N8+2: N14 N8+8: N21 N8+4: N14 N8+16: N32 N8+32: N42

7 Talk Outline  Existing P2P systems  Motivation for a robust P2P system  The new P2P architecture Configuration Service P2P nodes  Conclusion and future work  Discussions

8 Architecture  Configuration Service (CS): can run on subset of P2P nodes or be separate from P2P nodes determines current configuration and propagate the information  P2P nodes (server machines) Configuration Service P2P Nodes

9 Configuration Service  Four main functions: Admission control Node monitoring Deciding on a new configuration Propagating configuration information

10 Admission Control  Prevents a single user controlling large fraction of the ID space  Hard to do in volunteer-based system  Approach: Maintain a list of authorities who are permitted to add nodes to the system Each new nodes inform CS its ID, IP and public key

11 Node Monitoring  How to determine a node should be evicted?  Failstop: ping nodes periodically  Byzantine: hard! Probing: must be indistinguishable from client requests Still, faulty nodes may lie in wait Rely on proactive recovery

12 Proactive Recovery  All nodes in the system are recovered proactively and frequently.  Approach: Each node has a watchdog timer to trigger recovery During a recovery, a node reboots from the saved correct state. Then, in order to bring the states up- to-date, it sends status message to replicas, who detect missing messages (if any) and retransmits them.

13 Proactive Recovery (cont.)  To ensure correctness, choose recovery frequency, such that: There are (3f+1) the number of replicas for a data item. For any moment, there are at most f faulty replicas (see algorithm in [2])  Byzantine faulty nodes may only present temporarily in the system

14 Assumptions of the model To apply proactive recovery, P2P nodes are server machines, such that less failure-prone dedicated to handle distributed applications. not constantly joining and leaving the system, and routing states changes infrequently still can run symmetric protocols, and distributed across a wide area

15 Deciding on a New Configuration  Include newly joined nodes  Evict potentially faulty nodes Byzantine faulty nodes only present temporarily, therefore do need to detect and remove them. Remove potential failstop nodes that are not reachable for certain time period  Produce new configuration periodically e.g. once every hour

16 Propagating Configuration  What to propagate? Disseminate entire config Assumption: few nodes joining/leaving Advantage: enable efficient lookup Overhead: Local storage of configuration information 100,000 nodes -> 14.7 MB Transmit using diffs and compressions  How to propagate? Will be discussed later

17 Talk Outline  Existing P2P systems  Motivation for a robust P2P system  The new P2P architecture Configuration Service P2P nodes  Conclusion and future work  Discussions

18 Two Layers on P2P Nodes  Lookup layer: Receive/maintain configuration info  Storage layer: Store/retrieve/transfer data items Upon configuration changes, need state transfer During lookup, ask lookup layer for the replicas that hold the data of interest, then contact the storage layer at the replicas directly

19 Two Types of Data  Immutable, self-verifying data. Use the hash of its content as ID  Mutable data Extend the data with a monotonically increasing version number Retrieval needs to make sure to be the latest version

20 Data Management of Storage Layer  Storage/Retrieval with static configuration Immutable data Mutable data  Storage/Retrieval during re-configuration State transfer Configuration propagation

21 Storage/Retrieval with Static Configuration  Need to ensure that 2f+1 replicas claim to have stored the data  Assume no concurrent writes to the same data items

22 Immutable Data  Adversary cannot forge them  Not updateable – never out-of-date  Write to and receive acknowledgement from at least 2f + 1 replicas  Read from only one replica, if the content hash matches the ID

23 Mutable data  Replay attack  Must include version number  Write to 2f+1 replicas One round-trip if version number is known Otherwise learn current version number by an extra round-trip  Read from 2f+1 replicas and choose the one with highest version number to guarantee correctness

24 Store / Retrieve Algorithms Write 2f+1 replicas Read 2f+1 replicas  In total n=3f+1 replicas  At any moment, at most f faulty replicas  Therefore read at least 1 correct replica

25 Storage/Retrieval during Re-configuration  When configuration changes, the set of replicas of a data item may change  Need to State transfer Bring the up-to-date version of data to P2P nodes that are responsible for them Configuration propagation Propagate new configuration to all nodes over some time

26 State Transfer  If a node receives a new configuration, and realizes it is responsible for new data items  Then it pulls the up-to-date data from replicas of last configuration Immutable data: read one replica if the content hash matches id Mutable data: read 2f+1 replicas to ensure correctness

27 Configuration Propagation  Nodes include id of the latest configuration they know in the messages they exchange  If a node detects a new configuration, it requests for a copy of that configuration

28 Talk Outline  Existing P2P systems  Motivation for a robust P2P system  The new P2P architecture  Conclusion and future work  Discussions

29 Conclusions  A hybrid system consists of a set of servers as P2P nodes, and a CS.  P2P nodes are sever machines that dedicated for the storage application  CS are responsible for computing and propagating the current configuration  A Byzantine fault-tolerant system by applying proactive recovery

30 Future Work  Implementation  Improve algorithms – delete, quotas, …  Eliminate rebooting requirement

31 Discussions  Compare its underlying assumptions with existing P2P systems  Proposed improvements over existing P2P systems Support more applications Better fault-tolerance Efficient lookups

32 Discussion: Assumptions  Compare its underlying assumptions with existing P2P systems All nodes have identical responsibilities? Yes All communication is symmetric? Yes Volunteer nodes join / leave system at any time? No Assume participating nodes are dedicated to handle distributed applications, and do not frequently join/leave Node join under admission control  Similar as a distributed system?

33 Discussion: Support More Applications  Current P2P systems use P2P storage to publish data, only useful for content sharing  This system supports state changes of the data (writes), useful for archiving Read/write 2f+1 replicas, big overhead?

34 Discussion: Better fault-tolerance  Current P2P systems: failstop fault-tolerant  This system: Byzantine fault-tolerant By applying proactive recovery Only suitable for server machines

35 Discussion: Efficient Lookups  Existing P2P systems: A node is responsible for the routing states of a subset of the nodes. Routing requires several lookups  This system: Every node stores the whole configuration, enables direct lookups Pros: efficient lookups Cons: big storage; big transfer; many routing state changes when nodes join/leave

36 Questions? Thank you!