370 likes | 502 Views
by Rizal Mohd Nor Mikhail Nesterenko Sébastien Tixeuil SSS 2013 Nov 13-16, 2013. Linearizing Peer-to-Peer Systems with Oracles. Introduction. Fundamental limits on construction of structured peer-to-peer systems in asynchronous [1] inability to connect a disconnected network
E N D
by Rizal Mohd Nor Mikhail Nesterenko SébastienTixeuil SSS 2013 Nov 13-16, 2013 Linearizing Peer-to-Peer Systems with Oracles
Introduction Fundamental limits on construction of structured peer-to-peer systems in asynchronous [1] • inability to connect a disconnected network • discard peer identifiers that are not present in the system Studying these limits • identify peer-to-peer system specific oracles and isolate the source of impossibility • show minimality of oracles and proving their necessity for solution existence • provide an oracle-based algorithm Why Linearization (topological sort) • foundational for most popular peer-to-peer systems as construction starts with topologically sorting the peers in the system • similar to consensus as one can observe how it pertain to all peer-to-peer systems [1] Rizal Mohd Nor, Mikhail Nesterenko, and Christian Scheideler. Corona: A stabilizing deterministic message-passing skip list. In 13th. International Symposium on Stabilization, Safety and security of Distributed Systems (SSS) pages 356-370, October 2011
Outline • linearization problem • solution oracles • necessary conditions • linearization solutions • execution example • oracle implementation
Linearization Problem • Strict (SL) and eventual (EL) linearization variants • SL requires each process to output its neighbors exactly once and allows only correct output • EL’s computation contains a suffix where the output of each process is correct • Existing (EID) and non-existing (NID) identifiers within the linearization problem • EID prohibits the existence of non-existing identifiers • NID allows non-existing identifiers
Outline • linearization problem • solution oracles • necessary conditions • linearization solutions • execution example • oracle implementation
Solution Oracles • weak connectivity oracle (WC) has a single action that: • selects a pair of processes p and q such that they are disconnected in the channel connectivity graph CC, then • connecting graph by adding q to the incoming channel of p creating a link (p,q) • participant detector (PD) oracle removes a non-existent identifier stored in p. • neighbor output oracle (NO) just output identifiers stored in left and right variables of p • consequent process detector (CD) • outputs the stored identifier only if it is consequent with p • the guard of CD mentions all the identifiers of the system
Outline • linearization problem • solution oracles • necessary conditions • linearization solutions • execution example • oracle implementation
Necessary Conditions: Weak Connectivity Oracle • For a linearization algorithm A, p1has to eventually output p2 p1 will eventually add p2, if the computation contains the actions of a weak connectivity oracle. Without WC, it will remain disconnected. p1 p2 p3 p4 p5 Theorem 1. Every solution to the linearization problem requires a weak connectivity oracle.
Subset Splittable • subset splittable • prevents a subset of processes from learning the state of the rest of the system • denoted as SS (subset spilttable) and NSS (non-subset spilttable) • neighborhood output oracle (NO) is subset spilttable (SS) • subset splittable since its guards only mention local variables • participant detector oracle (PD) is subset spilttable (SS) a b nid d e S2 S1 If PD is enabled at b, it would also be enabled at state Consider 2 sets of non-intersecting processes, S1 and S2
Subset Splittable • weak connectivity oracle (WC) is subset spilttable (SS) a b c d e S2 S1 If WC is enabled at c, connecting c to d, it would also be enabled at state c Consider 2 sets of non-intersecting processes, S1 and S2, where c and d are disconnected
Non Subset Splittable • consequent process detector (CD) is not subset spilttable(NSS) If a process has a consequent process, it is enabled. If b is added to set S1, c would be enabled. This disables CD enabled in the previous state. a c b d e S2 S1 Consider 2 sets of non-intersecting processes, S1 and S2 are totally ordered
Necessary Conditions: Non-subset Splittable Oracle a b c d e S2 S1 Consider 2 sets of non-intersecting processes, S1 and S2 Theorem 2. A solution to the strict linearization problem requires a non-subset splittableoracle.
Necessary Conditions: Non-subset Splittable Oracle a b c d e Since strict linearization requires each process to output only once, in this case, b or c cannot output without knowing the state of the rest of the system Theorem 2. A solution to the strict linearization problem requires a non-subset splittableoracle.
Necessary Conditions: NID requires PD oracles • PD is required to remove the right id of process p1 and left id of process p2. Without PD, a process p1 may be connected toanon-existing identifier and result in a graph to be disconnected from the higher-id processes forever p1 p2 p3 p4 p5 Theorem 3. A proper solution to the linearization problem that allows non-existing identifiers requires a participant detector oracle.
Outline • oracles • linearization problem • solution oracles • necessary conditions • linearization solutions • execution example • oracle implementation
Necessary Oracles The necessary oracles to solve the 4 variants of the linearization problem. Linearization algorithm L with a combination of oracles to solve the linearization problem
Outline • oracles • linearization problem • solution oracles • necessary conditions • linearization solutions • execution example • oracle implementation
EL+EID Execution Example using L+WC • The linearization algorithm L, linearizes a list of peers • actions • receive ID from right → set closer right neighbor or forward to right neighbor • receive ID from left → set closer left neighbor or forward to left neighbor • true (timeout) → send ID to right and left neighbor • WC Oracleactions • graph contains disconnected components of and such that send to Starting from an arbitrary state where processes are weakly connected except process a a b c d e
EL+EID Execution Example using L+WC • The linearization algorithm L, linearizes a list of peers • actions • receive ID from right → set closer right neighbor or forward to right neighbor • receive ID from left → set closer left neighbor or forward to left neighbor • true (timeout) → send ID to right and left neighbor • WC Oracleactions • graph contains disconnected components of and such that send to a b c d e
EL+EID Execution Example using L+WC • Since anddisconnected, WC is enabled at process a • WC Oracle actions • graph contains disconnected components of and such that send to Node a WC oracle is enabled and node a sends its ID to node e a a b c d e
EL+EID Execution Example using L+WC • starting from this state, processes are weakly connected and WC is never enabled • the only actions enabled are the actions of the linearization algorithm L • actions • receive ID from right → set closer right neighbor or forward to right neighbor • receive ID from left → set closer left neighbor or forward to left neighbor • true (timeout) → send ID to right and left neighbor Node e receive a's ID, forward to c a b c d e a
EL+EID Execution Example using L+WC • the only actions enabled are the actions of the linearization algorithm L • actions • receive ID from right → set closer right neighbor or forward to right neighbor • receive ID from left → set closer left neighbor or forward to left neighbor • true (timeout) → send ID to right and left neighbor Node c receive a's ID, forward to b a a b c d e
EL+EID Execution Example using L+WC • the only actions enabled are the actions of the linearization algorithm L • actions • receive ID from right → set closer right neighbor or forward to right neighbor • receive ID from left → set closer left neighbor or forward to left neighbor • true (timeout) → send ID to right and left neighbor Node b receive a's ID, set its new left neighbor a b c d e
EL+EID Execution Example using L+WC • the only actions enabled are the actions of the linearization algorithm L • actions • receive ID from right → set closer right neighbor or forward to right neighbor • receive ID from left → set closer left neighbor or forward to left neighbor • true (timeout) → send ID to right and left neighbor Node b sends it's ID, to Node a b a b c d e
EL+EID Execution Example using L+WC • the only actions enabled are the actions of the linearization algorithm L • actions • receive ID from right → set closer right neighbor or forward to right neighbor • receive ID from left → set closer left neighbor or forward to left neighbor • true (timeout) → send ID to right and left neighbor Node a receive b's ID, set its new right neighbor a b c d e
EL+EID Execution Example using L+WC 1. processes take independent actions c a b c d e
EL+EID Execution Example using L+WC 1. processes take independent actions c a b c d e 2. d a b c d e
EL+EID Execution Example using L+WC 1. processes take independent actions c a b c d e d 2. a b c d e 3. d a b c d e
EL+EID Execution Example using L+WC 1. processes take independent actions c a b c d e d 2. a b c d e 3. d a b c d e 4. e a b c d
EL+EID Execution Example using L+WC 1. processes take independent actions 5. c a b c d e e a b c d e d 2. a b c d e 3. d a b c d e 4. e a b c d
EL+EID Execution Example using L+WC 1. processes take independent actions 5. c a b c d e e a b c d e d 2. 6. e e a b c d e a b c d 3. d a b c d e 4. e a b c d
EL+EID Execution Example using L+WC 1. processes take independent actions 5. c a b c d e e a b c d e d 2. 6. e e a b c d e a b c d 3. d e 7. a b c d e e a b c d 4. e a b c d
Outline • oracles • linearization problem • solution oracles • necessary conditions • linearization solutions • execution example • oracle implementation
Oracle Implementation Example: WC • WC repairs the network disconnections, an encapsulation of bootstrap service commonly found in peer-to-peer systems • Example: • One bootstrap process b is always present in the system • the responsibility of this process is to maintain the greatest and smallest identifier of the system • if process pis disconnected, it does not have a left or right neighbor, it assumes that its own identifier is the greatest or, respectively, smallest • process p then sends its identifier tob • process b then either confirms this assumption or sends p, its current smallest or greatest identifier • weak connectivity is restored b A disconnected peer will contact the bootstrap service to get smallest or greatest identifier q q p
Oracle Implementation Example: PD • PD encapsulates the limits between relative process speeds and maximum message propagation delay and can be implemented using a heartbeat protocol • Example: • if process p contains an identifier q, p sends q a heartbeat message requesting a reply • if p does not receive this reply after the time above the maximum network delay, pconsiders q non-existent and discards it Discard left link No reply from q heartbeat q p
Future Research • Narrowing the gap between necessary and sufficient • Strict linearization solution relies on CD, which is a specific kind of the necessary non-subset splittable detector • Narrowing the gap between necessary and sufficient conditions for the solution to the strict linearizability problem remains to be addressed in future research. • Thank you. Any Questions.