Slide 1

Slide 1 text

WHAT WE TALK ABOUT WHEN WE TALK ABOUT DISTRIBUTED SYSTEMS ALVARO VIDELA - RABBITMQ

Slide 2

Slide 2 text

DISTRIBUTED SYSTEMS FOR THE IKEA FAMILY ALVARO VIDELA - RABBITMQ

Slide 3

Slide 3 text

DISTRIBUTED SYSTEMS

Slide 4

Slide 4 text

“A DISTRIBUTED SYSTEM IS ONE IN WHICH THE FAILURE OF A COMPUTER YOU DID NOT EVEN KNOW EXISTED CAN RENDER YOUR OWN COMPUTER UNUSABLE” Leslie Lamport

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Google: define jargon

Slide 8

Slide 8 text

DISTRIBUTED SYSTEMS

Slide 9

Slide 9 text

DISTRIBUTED SYSTEMS • Many entities trying to solve a problem (nodes, processes)

Slide 10

Slide 10 text

DISTRIBUTED SYSTEMS • Many entities trying to solve a problem (nodes, processes) • Partial Knowledge

Slide 11

Slide 11 text

DISTRIBUTED SYSTEMS • Many entities trying to solve a problem (nodes, processes) • Partial Knowledge • Uncertainty

Slide 12

Slide 12 text

DEEP RABBIT HOLE

Slide 13

Slide 13 text

WHAT TO READ?

Slide 14

Slide 14 text

WHICH PAPERS?

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

WHICH BOOKS?

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

WHY?

Slide 23

Slide 23 text

http://tobielangel.com

Slide 24

Slide 24 text

THE PROBLEM

Slide 25

Slide 25 text

DIFFERENT MODELS

Slide 26

Slide 26 text

DIFFERENT MODELS • Timing Model

Slide 27

Slide 27 text

DIFFERENT MODELS • Timing Model • Inter Process Communication Used (IPC method)

Slide 28

Slide 28 text

DIFFERENT MODELS • Timing Model • Inter Process Communication Used (IPC method) • Failure Modes

Slide 29

Slide 29 text

TIMING MODEL

Slide 30

Slide 30 text

TIMING MODEL • Synchronous Model

Slide 31

Slide 31 text

TIMING MODEL • Synchronous Model • Asynchronous Model

Slide 32

Slide 32 text

TIMING MODEL • Synchronous Model • Asynchronous Model • Semi-synchronous Model

Slide 33

Slide 33 text

INTERPROCESS COMMUNICATION

Slide 34

Slide 34 text

INTERPROCESS COMMUNICATION • Message Passing

Slide 35

Slide 35 text

INTERPROCESS COMMUNICATION • Message Passing • Shared Memory

Slide 36

Slide 36 text

FAILURE MODES

Slide 37

Slide 37 text

FAILURE MODES • Crash-stop

Slide 38

Slide 38 text

FAILURE MODES • Crash-stop • Crash-recovery

Slide 39

Slide 39 text

FAILURE MODES • Crash-stop • Crash-recovery • Omission Faults

Slide 40

Slide 40 text

FAILURE MODES • Crash-stop • Crash-recovery • Omission Faults • Arbitrary Failures Mode (Byzantine)

Slide 41

Slide 41 text

LIVENESS AND SAFETY

Slide 42

Slide 42 text

LIVENESS AND SAFETY PROPERTIES OF ALGORITHMS

Slide 43

Slide 43 text

SAFETY Some “bad” thing does not happens during execution

Slide 44

Slide 44 text

SAFETY “Communication links should not invent messages out of thin air”

Slide 45

Slide 45 text

LIVENESS A “good” thing happens during execution

Slide 46

Slide 46 text

LIVENESS “A destination process eventually delivers the message”

Slide 47

Slide 47 text

LET’S TAKE A LOOK AT FLP1 1 - Fischer, Lynch, Paterson

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

IMPOSSIBILITY OF DISTRIBUTED CONSENSUS WITH ONE FAULTY PROCESS

Slide 50

Slide 50 text

IMPOSSIBILITY OF DISTRIBUTED CONSENSUS WITH ONE FAULTY PROCESS

Slide 51

Slide 51 text

IMPOSSIBILITY OF DISTRIBUTED CONSENSUS WITH ONE FAULTY PROCESS

Slide 52

Slide 52 text

IMPOSSIBILITY OF DISTRIBUTED CONSENSUS WITH ONE FAULTY PROCESS

Slide 53

Slide 53 text

IMPOSSIBILITY OF DISTRIBUTED CONSENSUS WITH ONE FAULTY PROCESS

Slide 54

Slide 54 text

WHAT’S CONSENSUS ANYWAY?

Slide 55

Slide 55 text

“THE CONSENSUS PROBLEM IS A PARADIGM OF AGREEMENT PROBLEMS” https://dl.acm.org/citation.cfm?id=1052796.1052806

Slide 56

Slide 56 text

PROPERTIES OF CONSENSUS

Slide 57

Slide 57 text

PROPERTIES OF CONSENSUS • C-Termination: Every correct process eventually decides on some value

Slide 58

Slide 58 text

PROPERTIES OF CONSENSUS • C-Termination: Every correct process eventually decides on some value • C-Validity: If a process decides v, then v was proposed by some process

Slide 59

Slide 59 text

PROPERTIES OF CONSENSUS • C-Termination: Every correct process eventually decides on some value • C-Validity: If a process decides v, then v was proposed by some process • C-Agreement: No two correct processes decide differently

Slide 60

Slide 60 text

PROPERTIES OF UNIFORM CONSENSUS • C-Termination: Every correct process eventually decides on some value • C-Validity: If a process decides v, then v was proposed by some process • C-Agreement: No two correct processes decide differently • C-Uniform Agreement: No two processes (correct or not) decide differently.

Slide 61

Slide 61 text

WE NEED CONSENSUS WHEN: A SET OF PROCESSES HAVE TO AGREE TO TAKE A COMMON ACTION

Slide 62

Slide 62 text

WE NEED CONSENSUS WHEN: A SET OF PROCESSES HAVE TO AGREE TO TAKE A COMMON ACTION Atomic Broadcast

Slide 63

Slide 63 text

WE NEED CONSENSUS WHEN: A SET OF PROCESSES HAVE TO AGREE TO TAKE A COMMON ACTION Atomic Broadcast Group Membership

Slide 64

Slide 64 text

ATOMIC BROADCAST “CORRECT PROCESSES DELIVER THE SAME SET OF MESSAGES IN THE SAME ORDER”

Slide 65

Slide 65 text

FLP TELLS US THAT IF CONSENSUS CANNOT BE ACHIEVED, THEN ATOMIC BROADCAST OR GROUP MEMBERSHIP CANNOT BE ACHIEVED EITHER

Slide 66

Slide 66 text

SO, WE PACK OUR BAGS AND GO? NOTHING TO SEE HERE?

Slide 67

Slide 67 text

STUMBLING OVER CONSENSUS RESEARCH: MISUNDERSTANDING AND ISSUES Marcos K. Aguilera

Slide 68

Slide 68 text

FAILURE DETECTORS

Slide 69

Slide 69 text

No content

Slide 70

Slide 70 text

FAILURE DETECTORS

Slide 71

Slide 71 text

FAILURE DETECTORS • External process

Slide 72

Slide 72 text

FAILURE DETECTORS • External process • Provides information about suspected processes

Slide 73

Slide 73 text

FAILURE DETECTORS • External process • Provides information about suspected processes • Completeness property (crashed processes are detected)

Slide 74

Slide 74 text

FAILURE DETECTORS • External process • Provides information about suspected processes • Completeness property (crashed processes are detected) • Accuracy (correct process are never suspected)

Slide 75

Slide 75 text

“RUB SOME PERFECT FAILURE DETECTOR ON IT”

Slide 76

Slide 76 text

http://www.amazon.com/Introduction-Reliable-Secure- Distributed-Programming/dp/3642152597 PERFECT FAILURE DETECTOR

Slide 77

Slide 77 text

EVENTUALLY ACCURATE FAILURE DETECTOR

Slide 78

Slide 78 text

EVENTUALLY ACCURATE FAILURE DETECTOR • Strong Completeness: Eventually, every process that crashes is permanently suspected by every correct process.

Slide 79

Slide 79 text

EVENTUALLY ACCURATE FAILURE DETECTOR • Strong Completeness: Eventually, every process that crashes is permanently suspected by every correct process. • Eventual Weak Accuracy: There is a time after which some correct process is never suspected by the correct processes.

Slide 80

Slide 80 text

EVENTUALLY ACCURATE FAILURE DETECTOR • Strong Completeness: Eventually, every process that crashes is permanently suspected by every correct process. • Eventual Weak Accuracy: There is a time after which some correct process is never suspected by the correct processes. http://dl.acm.org/citation.cfm?id=1052806

Slide 81

Slide 81 text

No content

Slide 82

Slide 82 text

QUORUMS

Slide 83

Slide 83 text

TL;DR: INTERSECTING SETS

Slide 84

Slide 84 text

“A QUORUM IN A SYSTEM WITH N CRASH-FAULT PROCESS ABSTRACTIONS […] IS ANY MAJORITY OF PROCESSES, I.E., ANY SET OF MORE THAN N/2 PROCESSES” QUORUMS

Slide 85

Slide 85 text

“IF F < N/2 PROCESSES FAIL BY CRASHING, THERE IS ALWAYS AT LEAST ONE QUORUM OF NONCRASHED PROCESSES IN SUCH SYSTEMS” QUORUMS

Slide 86

Slide 86 text

CONSISTENCY

Slide 87

Slide 87 text

No content

Slide 88

Slide 88 text

CONCURRENT FIFO QUEUE

Slide 89

Slide 89 text

CONSISTENCY CONDITIONS

Slide 90

Slide 90 text

CONSISTENCY CONDITIONS • Atomic Consistency (Linearizabilty)

Slide 91

Slide 91 text

CONSISTENCY CONDITIONS • Atomic Consistency (Linearizabilty) • Sequential Consistency

Slide 92

Slide 92 text

CONSISTENCY CONDITIONS • Atomic Consistency (Linearizabilty) • Sequential Consistency • Causal Consistency

Slide 93

Slide 93 text

CONSISTENCY CONDITIONS • Atomic Consistency (Linearizabilty) • Sequential Consistency • Causal Consistency https://aphyr.com/posts/313-strong-consistency- models

Slide 94

Slide 94 text

LINEARIZABILTY http://www.amazon.com/Distributed-Algorithms-Message-Passing-Systems-Michel/dp/ 3642381227/

Slide 95

Slide 95 text

LINEARIZABILTY http://www.amazon.com/Distributed-Algorithms-Message-Passing-Systems-Michel/dp/ 3642381227/

Slide 96

Slide 96 text

SOME BOOKS

Slide 97

Slide 97 text

http://www.amazon.com/Distributed-Algorithms- Message-Passing-Systems-Michel/dp/3642381227/

Slide 98

Slide 98 text

http://www.amazon.com/Fault-tolerant-Agreement- Synchronous-Message-passing-Distributed/dp/ 1608455254/

Slide 99

Slide 99 text

http://www.amazon.com/Communication-Abstractions- Fault-tolerant-Asynchronous-Distributed/dp/160845293X/

Slide 100

Slide 100 text

http://www.amazon.com/Distributed-Algorithms- Kaufmann-Management-Systems/dp/1558603484/

Slide 101

Slide 101 text

http://www.amazon.com/Introduction-Reliable-Secure- Distributed-Programming/dp/3642152597

Slide 102

Slide 102 text

http://www.amazon.com/Guide-Reliable-Distributed- Systems-High-Assurance/dp/1447124154/

Slide 103

Slide 103 text

http://www.amazon.com/Replication-Practice-Lecture- Computer-Theoretical/dp/3642112935/

Slide 104

Slide 104 text

FINDING NON PAYWALLED PAPERS

Slide 105

Slide 105 text

CONCLUSION

Slide 106

Slide 106 text

CONCLUSION • Deep Rabbit Hole

Slide 107

Slide 107 text

CONCLUSION • Deep Rabbit Hole • Computing Science where Science is Still a Thing™

Slide 108

Slide 108 text

CONCLUSION • Deep Rabbit Hole • Computing Science where Science is Still a Thing™ • History of the Field Matters

Slide 109

Slide 109 text

CONCLUSION • Deep Rabbit Hole • Computing Science where Science is Still a Thing™ • History of the Field Matters • Read, read, read

Slide 110

Slide 110 text

THANKS! @old_sound