Corona Robust Low Atomicity Peer-To-Peer Systems

Slides:



Advertisements
Similar presentations
1 Routing Protocols I. 2 Routing Recall: There are two parts to routing IP packets: 1. How to pass a packet from an input interface to the output interface.
Advertisements

Stefan Schmid & Christian Scheideler Dept. of Computer Science
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT and Berkeley presented by Daniel Figueiredo Chord: A Scalable Peer-to-peer.
Chapter 6 - Convergence in the Presence of Faults1-1 Chapter 6 Self-Stabilization Self-Stabilization Shlomi Dolev MIT Press, 2000 Shlomi Dolev, All Rights.
Teaser - Introduction to Distributed Computing
Chapter 15 Basic Asynchronous Network Algorithms
Self Stabilizing Algorithms for Topology Management Presentation: Deniz Çokuslu.
Self-Stabilization in Distributed Systems Barath Raghavan Vikas Motwani Debashis Panigrahi.
Fabian Kuhn, Microsoft Research, Silicon Valley
Linearizing Peer-to-Peer Systems with Oracles by Rizal Mohd Nor Mikhail Nesterenko Sébastien Tixeuil SSS 2013 Nov 13-16, 2013.
Lecture 4: Elections, Reset Anish Arora CSE 763 Notes include material from Dr. Jeff Brumfield.
Byzantine Generals Problem: Solution using signed messages.
Common approach 1. Define space: assign random ID (160-bit) to each node and key 2. Define a metric topology in this space,  that is, the space of keys.
 Idit Keidar, Principles of Reliable Distributed Systems, Technion EE, Spring Principles of Reliable Distributed Systems Lecture 7: Failure Detectors.
LSRP: Local Stabilization in Shortest Path Routing Hongwei Zhang and Anish Arora Presented by Aviv Zohar.
Dynamic Hypercube Topology Stefan Schmid URAW 2005 Upper Rhine Algorithms Workshop University of Tübingen, Germany.
LSRP: Local Stabilization in Shortest Path Routing Anish Arora Hongwei Zhang.
CS294, YelickSelf Stabilizing, p1 CS Self-Stabilizing Systems
Outline Max Flow Algorithm Model of Computation Proposed Algorithm Self Stabilization Contribution 1 A self-stabilizing algorithm for the maximum flow.
Distributed systems Module 2 -Distributed algorithms Teaching unit 1 – Basic techniques Ernesto Damiani University of Bozen Lesson 2 – Distributed Systems.
Chord & CFS Presenter: Gang ZhouNov. 11th, University of Virginia.
Andreas Larsson, Philippas Tsigas SIROCCO Self-stabilizing (k,r)-Clustering in Clock Rate-limited Systems.
Why do we need models? There are many dimensions of variability in distributed systems. Examples: interprocess communication mechanisms, failure classes,
Fault-containment in Weakly Stabilizing Systems Anurag Dasgupta Sukumar Ghosh Xin Xiao University of Iowa.
CS4231 Parallel and Distributed Algorithms AY 2006/2007 Semester 2 Lecture 10 Instructor: Haifeng YU.
Fault-containment in Weakly Stabilizing Systems Anurag Dasgupta Sukumar Ghosh Xin Xiao University of Iowa.
A Self-Stabilizing O(n)-Round k-Clustering Algorithm Stéphane Devismes, VERIMAG.
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.
Chap 15. Agreement. Problem Processes need to agree on a single bit No link failures A process can fail by crashing (no malicious behavior) Messages take.
Corona Linearization Analysis by Dianne Foreback Advanced Operating Systems Kent State University November 2013.
Anish Arora Ohio State University Mikhail Nesterenko Kent State University Local Tolerance to Unbounded Byzantine Faults.
CS 542: Topics in Distributed Systems Self-Stabilization.
1 Fault tolerance in distributed systems n Motivation n robust and stabilizing algorithms n failure models n robust algorithms u decision problems u impossibility.
Superstabilizing Protocols for Dynamic Distributed Systems Authors: Shlomi Dolev, Ted Herman Presented by: Vikas Motwani CSE 291: Wireless Sensor Networks.
Anish Arora Ohio State University Mikhail Nesterenko Kent State University Local Tolerance to Unbounded Byzantine Faults.
Computer Science 425/ECE 428/CSE 424 Distributed Systems (Fall 2009) Lecture 20 Self-Stabilization Reading: Chapter from Prof. Gosh’s book Klara Nahrstedt.
Fundamentals of Fault-Tolerant Distributed Computing In Asynchronous Environments Paper by Felix C. Gartner Graeme Coakley COEN 317 November 23, 2003.
Self-stabilizing Overlay Networks Sukumar Ghosh University of Iowa Work in progress. Jointly with Andrew Berns and Sriram Pemmaraju (Talk at Michigan Technological.
Christian Scheideler Dept. of Computer Science
Delay-Tolerant Networks (DTNs)
Model and complexity Many measures Space complexity Time complexity
第1部: 自己安定の緩和 すてふぁん どぅゔぃむ ポスドク パリ第11大学 LRI CNRS あどばいざ: せばすちゃ てぃくそい
Evaluating and Optimizing Stabilizing Dining Philosophers
Vineet Mittal Should more be added here Committee Members:
Controlling the Cost of Reliability in Peer-to-Peer Overlays
CSE 486/586 Distributed Systems Failure Detectors
Privacy and Fault-Tolerance in Distributed Optimization Nitin Vaidya University of Illinois at Urbana-Champaign.
CSE 486/586 Distributed Systems Failure Detectors
DHT Routing Geometries and Chord
Infinite Unlimited Churn
Chord Advanced issues.
Student: Fang Hui Supervisor: Teo Yong Meng
CS60002: Distributed Systems
Introduction to locality sensitive approach to distributed systems
Presented By: Md Amjad Hossain
Chord Advanced issues.
Robust Stabilizing Leader Election
EEC 688/788 Secure and Dependable Computing
Chord Advanced issues.
EEC 688/788 Secure and Dependable Computing
Abstraction.
ECE 753: FAULT-TOLERANT COMPUTING
Algorithms for Extracting Timeliness Graphs
EEC 688/788 Secure and Dependable Computing
Introduction to Self-Stabilization
EEC 688/788 Secure and Dependable Computing
Snap-Stabilization in Message-Passing Systems
CSE 486/586 Distributed Systems Failure Detectors
CSE 486/586 Distributed Systems Leader Election
Presentation transcript:

Corona Robust Low Atomicity Peer-To-Peer Systems Rizal Mohd Nor Mikhail Nesterenko Christian Scheideler

Overlay Networks and Stabilization self-stabilization guarantees that starting from arbitrary initial state, system will converge to legal state in finite time

Overlay Networks and Stabilization self-stabilization guarantees that starting from arbitrary initial state, system will converge to legal state in finite time stabilization is good for overlay networks: overlay network is effective way to distribute information at scale many users constantly leave and join faults and inconsistencies are the norm esoteric faulty states may be reached large scale precludes centralized fault tolerance and initialization

overlay networks and programming model necessary conditions corona Outline overlay networks and programming model necessary conditions corona bottom level skip-list

Overlay Network Terminology in overlay network, any pair of peers can establish a link topology unstructured: low mainte- nance, high search cost structured : predictable performance, fast search, higher maintenance our focus: structured overlay networks

Related Work Self-stabilizing overlay networks: Sorted lists and rings [Cramer & Fuhrmann 2005] [Shaker & Reeves 2005] [Onus & Richa & S 2007] … Skip lists [Clouser & Nesterenko & S 2008] Delaunay graph [Jacob & Ritscher & S & Schmid 2009] Skip graph [Jacob & Richa & S & Schmid & Täubig 2009] Chord [Kniesburges & Koustopoulos & S 2011] De Bruijn graph [Richa & S & Stevens 2011] Universal [Berns & Ghosh & Pemmaraju 2011] … Only simple communication models: shared memory or synchronous message passing

Our Approach Self-stabilizing skip list (and skip graph) for asynchronous message passing model Basic assumptions: actions: triggered by messages (or predicate „true“) , only compare-store-send atomic action execution weak fairness: action enabled in all but finitely many states will be executed infinitely often fair message receipt: every message eventually received (i.e., triggers an action) no FIFO needed!

overlay networks and programming model necessary conditions corona Outline overlay networks and programming model necessary conditions corona bottom level skip-list

Necessary Conditions Graph model: nodes with unique, ordered identifiers (ids) directed links application level: knowledge (msgs, connections) network level: reliable channels of unbounded capacity a b c d e

Necessary Conditions graph has to be initially weakly connected ids of non-existing nodes are not present in the system. A disconnected graph, will always remain disconnected a b c d e a non-existing identifier, or an unresponsive one, may result in a graph to be disconnected forever a b c d e

overlay networks and programming model necessary conditions corona Outline overlay networks and programming model necessary conditions corona bottom level skip-list

Skip-List skip-list: enables searches & updates in logarithmic work 0th is a sorted list of nodes (peers) only a fraction of the nodes is promoted to each subsequent level 1-2 skip-list: at each level i>0, any two nodes a and b are neighbors at level i if the distance between a and b at level i-1 is no less than 2 and no more than 3 hops a 1 2 3 b c d e f g h i k

Execution Model notation left node – lower id right node – higher id process UP state – promoted to upper levels process DOWN state – not promoted to upper levels channel links act as storage a b c d e

L-corona (bottom level) invariant: at the bottom level, each node stores IDs of closest left and right neighbors seen so far (in l and r) actions receive ID from right: update r, forward remaining ID to r receive ID from left: update l, forward remaining ID to l true: send own ID to r & l a b c d e

L-corona actions receive ID from right: update r, forward remaining ID to r receive ID from left: update l, forward remaining ID to l true: send own ID to r & l Node a sends its id a a b c d e

Node e receives a's id, forwards to c L-corona actions receive ID from right: update r, forward remaining ID to r receive ID from left: update l, forward remaining ID to l true: send own ID to r & l Node e receives a's id, forwards to c a b c d a e

Node c receives a's id, forwards to b L-corona actions receive ID from right: update r, forward remaining ID to r receive ID from left: update l, forward remaining ID to l true: send own ID to r & l Node c receives a's id, forwards to b a a b c d e

Node b receives a's id, set its new left neighbor L-corona actions receive ID from right: update r, forward remaining ID to r receive ID from left: update l, forward remaining ID to l true: send own ID to r & l Node b receives a's id, set its new left neighbor a b c d e

L-corona actions receive ID from right: update r, forward remaining ID to r receive ID from left: update l, forward remaining ID to l true: send own ID to r & l Node b sends its id to node a b a b c d e

Node a receives b's id, set its new right neighbor L-corona actions receive ID from right: update r, forward remaining ID to r receive ID from left: update l, forward remaining ID to l true: send own ID to r & l Node a receives b's id, set its new right neighbor a b c d e

L-corona Processes execute actions one by one 1. c a b c d e

L-corona Processes execute actions one by one 1. c a b c d e 2. d a b

L-corona Processes execute actions one by one 1. c a b c d e d 2. a b 3. d a b c d e

L-corona Processes execute actions one by one 1. c a b c d e d 2. a b 3. d a b c d e 4. a b c d e

L-corona Processes execute actions one by one 1. c 5. a b c d e a b c 2. a b c d e 3. d a b c d e 4. a b c d e

L-corona Processes execute actions one by one 1. c 5. a b c d e a b c 2. 6. e a b c d e a b c d e 3. d a b c d e 4. d a b c d e

L-corona Processes execute actions one by one 1. c 5. a b c d e a b c 2. 6. e a b c d e a b c d e 3. d 7. e a b c d e e a b c d 4. d a b c d e

State is always UP if right neighbor is undefined S-corona constructs the 1-2 skip list at each level. lower levels have to stabilize before level can stabilize. actions for process p receive state from right: if (right & p state = UP) then p state := DOWN receive state from left: if (left & right & p state = DOWN) then p state := UP true: send state to right & left nodes State is always UP if right neighbor is undefined level i+1 level i Starting from an arbitrary state where level i is linearized from L-corona

Left and right neighbor state is DOWN S-corona actions for process p receive state from right: if (right & p state = UP) then p state := DOWN receive state from left: if (left & right and p state = DOWN) then p state := UP true: send state to right & left nodes Left and right neighbor state is DOWN Level i+1 Level i a b c d e f g h i k Level i a Level i+1 b c d e f g h i k Change state to UP

S-corona Level i+1 Level i a b c d e f g h i k Level i a Level i+1 b c

Correctness Proof Outline level by level stabilization proof assume bottom level is connected. stabilization of L-corona closure – link connecting consequent nodes is never removed convergence – path connecting consequent nodes is always shortened stabilization of S-corona (by level) assume lower level(s) are stable, closure – a node UP/DOWN state only changes a finite number of times convergence – eventually satisfy the predicate rules of a skip-list

Skip-graph a single node can disconnect a skip list. solution: concurrently construct a skip-list of out the remaining nodes that are not upgraded to the next levels. a 1 2 3 b c d e f g h i k Skip-graph with 2 layers

Conclusion Corona: first self-stabilizing overlay network under asynchronous message passing Open problems: What if ids of non-existing nodes are present in system Churn Byzantine behavior Fault containment Any questions?

Topology Updates (Joins) Joins require L-corona to linearize its lower level, then S- corona will make sure correct 1-2 skip list structure Consider a node c' joining at node c Level i Level i+1 b c d c' Node c' sends its ID to c a Level i Level i+1 b c d c' a Node c & d updates right and left neighbor following L-corona alg.

Topology Updates (Joins) Lower level stabilizes, S-corona can correctly stabilize Level i Level i+1 b c c' a d Level i Level i+1 b c c' a Only node c will be enabled to change state to UP by following the S-corona alg. d

Topology Updates (departures) Similar to joins, L-corona must stabilize before S-corona can correctly stabilize. Level i Level i+1 b c c' a Departing node c’ d d Level i Level i+1 b c a From the algorithm node c receives node d UP status Level i Level i+1 b c a node c is and node d is UP, node c changes its state to DOWN d

Minimal Detectors recall: it is necessary for the channel connectivity graphs to be initially connected non-existing identifiers to be not present in the system. thus, node crashes have to be removed from the system proposed solution: redesign detectors used by Chandra & Toueg to detect failed nodes. remove crashed ids challenge identifying the weakest kind of detectors to be sufficient for self-stabilization identify absolute minimality of these detectors.

Byzantine fault containment Byzantine node is a faulty node that behaves arbitrarily can corrupt its own local state send arbitrary messages to neighboring nodes may also send messages aimed to disrupt the peer-to-peer system many security attacks are modeled as Byzantine faults propose Byzantine fault containment extend Corona to identify subset of Byzantine nodes isolate Byzantine nodes from affecting other nodes

Fault Containment Corona is a self-stabilizing algorithm designed to converge to a desired stable state starting from an arbitrary initial state arising from a large number of faults. However, large number of faults in a peer-to-peer system are rarely mostly, faults are limited to a specific region motivation: contain the effects of limited transient fault limited to a local set of nodes does not perturb the operations of the larger set in the network. propose fault containment extend Corona's algorithm to recover very fast from a bounded number of faults.

Resistance to Churn Churn participating nodes join and leave the system continuously. may cause a partition in the topology may render the topology to be inefficient. propose improve Corona to maintain correct topology despite churn. methods redesign Corona to allow non-interfering concurrent topology updates extend self-stabilizing dining philosophers allow only one neighbor to modify its state and links at a time.