Download presentation
Presentation is loading. Please wait.
1
Asynchronous token routing device
Balancer Asynchronous token routing device inputs outputs 1 bit of memory
2
Asynchronous token routing device
Balancer Asynchronous token routing device inputs outputs 1 bit of memory
3
Asynchronous token routing device
Balancer Asynchronous token routing device inputs outputs 1 bit of memory
4
Asynchronous token routing device
Balancer Asynchronous token routing device inputs outputs 1 bit of memory
5
Asynchronous token routing device
Balancer Asynchronous token routing device inputs outputs 1 bit of memory
6
Asynchronous token routing device
Balancer Asynchronous token routing device inputs outputs 1 bit of memory
7
Asynchronous token routing device
Balancer Asynchronous token routing device inputs outputs 1 bit of memory
8
Asynchronous token routing device
Balancer Asynchronous token routing device inputs outputs 1 bit of memory
9
Asynchronous token routing device
Balancer Asynchronous token routing device inputs outputs 1 bit of memory
10
Asynchronous token routing device
Balancer Asynchronous token routing device inputs outputs 1 bit of memory
11
Asynchronous token routing device
Balancer Asynchronous token routing device inputs outputs balanced token counts 1 bit of memory
12
A Biochemical Balancer?
2X Y + Z inputs outputs 1 bit of memory
13
Counting Network Data structure for multiprocessor coordination inputs
Aspnes, Herlihy & Shavit (1991) a d a e a e d c a c b f b f inputs outputs e b f c c g g f b e g d g d depth
14
Isomorphic to Batcher’s Bitonic sorting network.
Counting Network Isomorphic to Batcher’s Bitonic sorting network. a d a e a e d c a c b f b f step sequence e b f c c g g f b e g d g d
15
Balancer Snapshot inputs outputs x y 1 bit of memory
16
Execution trace: token counts on all wires
Counting Network Execution trace: token counts on all wires 3 1 1 2 2 1 2 1
17
Fault Tolerance Dynamic faults in the data structure:
No errors in control: No lost tokens Corrupted data No errors in network wiring Inaccessible data concurrent data structure 1
18
Fault Model inputs outputs
19
Fault Model fault! inputs outputs
20
Fault Model inputs outputs state is inaccessible
21
tokens bypass balancer
Fault Model tokens bypass balancer inputs outputs state is inaccessible
22
tokens bypass balancer
Fault Model tokens bypass balancer inputs outputs state is inaccessible
23
tokens bypass balancer
Fault Model tokens bypass balancer inputs outputs state is inaccessible
24
tokens bypass balancer
Fault Model tokens bypass balancer inputs outputs imbalance in token counts state is inaccessible
25
tokens bypass balancer
Fault Model tokens bypass balancer inputs outputs received prior to the fault received after the fault
26
Naïve approach: replicate every balancer.
Fault Tolerance Naïve approach: replicate every balancer. outputs inputs
27
Naïve approach: replicate every balancer.
Fault Tolerance Naïve approach: replicate every balancer. inputs outputs
28
Naïve approach: replicate every balancer.
Fault Tolerance Naïve approach: replicate every balancer. inputs outputs
29
Naïve approach: replicate every balancer.
Fault Tolerance Naïve approach: replicate every balancer. inputs outputs
30
Naïve approach: replicate every balancer.
Fault Tolerance Naïve approach: replicate every balancer. inputs outputs
31
Naïve approach: replicate every balancer.
Fault Tolerance Naïve approach: replicate every balancer. fault! inputs outputs
32
Naïve approach: replicate every balancer.
Fault Tolerance Naïve approach: replicate every balancer. inputs outputs
33
Naïve approach: replicate every balancer.
Fault Tolerance Naïve approach: replicate every balancer. inputs outputs
34
Naïve approach: replicate every balancer.
Fault Tolerance Naïve approach: replicate every balancer. inputs outputs imbalance in token counts Doesn’t work!
35
Remapping Faulty Balancers
36
Remapping Faulty Balancers
37
Remapping Faulty Balancers
inaccessible balancer
38
Remapping Faulty Balancers
Redirect pointers to spare balancer inaccessible balancer spare balancer, random initial state
39
Fault Model inputs outputs
40
Fault Model fault! inputs outputs
41
spurious state transition
Fault Model Remapped balancer inputs outputs spurious state transition
42
spurious state transition
Fault Model Remapped balancer inputs outputs spurious state transition
43
spurious state transition
Fault Model Remapped balancer inputs outputs imbalance in token counts spurious state transition
44
Fault Model Remapped balancer inputs outputs x y
45
Error Bound Error bound for the output sequence of a balancing network with remapped balancers: Balancing Network k faults
46
Distance Measure The distance between two sequences and is:
Definition: Balancing Network k faults gives number of “misplaced tokens”
47
Two identical balancing networks, given same inputs:
Error Bound Two identical balancing networks, given same inputs: no faults k faults
48
Error Bound Execution without faults: 3 1 1 2 2 1 2 1
49
Error Bound Execution with a fault: 3 1 3 1 1 2 1 2 2 1 3 2 1 2 1 3 2
3 1 1 2 1 2 2 1 3 2 1 2 1 3 2 1
50
Error Bound Distance: 2 1 3 = 1 = 0 2 1
51
Strategy: to correct k faults, append k copies.
Correction Network Strategy: to correct k faults, append k copies. smooth sequence step sequence with k errors step sequence CORRECT[n] #1 CORRECT[n] #k
52
Strategy: Construct a block which reduces error by one.
Correction Network Strategy: Construct a block which reduces error by one. step sequence with k errors step sequence with errors CORRECT[n]
53
Correction Network To reduce error by one:
balance smallest and largest entries. step sequence with k errors largest value smallest value step sequence with errors BUTTERFLY[n]
54
Butterfly Network Network which separates out smallest and largest entries: 1 10 34 1 6 5 17 4 3 2 9 8 7 6 5 largest value smallest value
55
Butterfly Network error reduced Balance smallest and largest entries:
1 4 7 6 5 1 3 6 10 6 3 6 1 5 2 5 1 9 6 1 9 6 34 17 9 6 17 8 5
56
Fault Tolerance Solution:
Counting Network constructed with FT balancers. Counting Network FT Counting Network tolerates k faults
57
Fault-Tolerant Balancer
k+1 “pseudo-balancers”, two bits of memory each inputs outputs L F tolerates k faults
58
Pseudo-Balancer two bits of memory state: up or down
inputs outputs L two bits of memory state: up or down status: leader (L) or follower (F)
59
Leader two bits of memory Accepts tokens on either wire.
inputs outputs L incoming tokens colored green Accepts tokens on either wire. Colors outgoing tokens red.
60
Leader two bits of memory Accepts tokens on either wire.
inputs outputs L incoming tokens colored green Accepts tokens on either wire. Colors outgoing tokens red.
61
Leader two bits of memory Accepts tokens on either wire.
inputs outputs L incoming tokens colored green Accepts tokens on either wire. Colors outgoing tokens red.
62
Leader two bits of memory Accepts tokens on either wire.
inputs outputs L incoming tokens colored green Accepts tokens on either wire. Colors outgoing tokens red.
63
Leader two bits of memory Accepts tokens on either wire.
inputs outputs L incoming tokens colored green Accepts tokens on either wire. Colors outgoing tokens red.
64
Follower two bits of memory Accepts red tokens in order. inputs
outputs F Accepts red tokens in order.
65
Follower two bits of memory Accepts red tokens in order. inputs
outputs F Accepts red tokens in order.
66
Follower two bits of memory Accepts red tokens in order. inputs
outputs F Accepts red tokens in order.
67
Follower two bits of memory Accepts red tokens in order. inputs
outputs F Accepts red tokens in order.
68
Follower two bits of memory Accepts red tokens in order. inputs
outputs F Accepts red tokens in order.
69
Follower two bits of memory Accepts red tokens in order. inputs
outputs F Accepts red tokens in order.
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.