You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Lecture 23.md
+22-22Lines changed: 22 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -83,7 +83,7 @@ Barbara Liskov has made some fundamental contributions to programming language d
83
83
PBFT is a replication technique that tolerates Byzantine faults, and in spite of having the word *"practical"* in the name, it is not used in practice that often.
84
84
85
85
The distinguishing feature of this fault-tolerance behaviour is that if you have a system with `n` replicas, then `floor((n - 1) / 3)` of those replicas are allowed to "fail".
86
-
The world "fail" is put in quotation marks because what we mean here is really*"exhibit Byzantine behaviour"*.
86
+
The world "fail" is put in quotation marks because what we really mean here is *"exhibit Byzantine behaviour"*.
87
87
By this, we mean that a process could:
88
88
89
89
* Genuinely crash
@@ -107,7 +107,7 @@ This paper was very influential when it was released because previous strategies
107
107
108
108
Of all the available fault-tolerance models, this one is the most expensive to run.
109
109
This is mainly because you need some seriously powerful number-crunching hardware to perform blockchain mining.
110
-
This in turn gives you very large electricity bill and increases your impact or the environment...
110
+
This in turn creates a very large electricity bill and increases your impact on the environment...
111
111
112
112
The term consensus is in quotes here because in strategies such as Paxos and RAFT, there is a very definite point in the algorithm where you know that consensus has been reached, and then there is no going back.
113
113
With Blockchain "consensus", the algorithm never reaches a specific milestone; instead, you only have a probabilistic guarantee that consensus is likely.
@@ -119,26 +119,26 @@ If you can get away with not needing strong consistency between replicas, then t
119
119
Overall, go for the weakest safety property you can reasonably tolerate.
120
120
Hence the suggestion to use strong convergence instead of strong consistency, or the development of techniques such as Conflict-Free Replicated Datatypes (CRDTs).
121
121
122
-
##Discovering Who Invented Vector Clocks
122
+
# Discovering Who Invented Vector Clocks
123
123
124
-
It is not clear who first invented vector clocks, and in many respects, attribution of this concept to a single person or group is not of much consequence; however, it is interesting to trace the development of this idea.
124
+
It is not clear who first invented vector clocks, and in many respects, attempts to attribute of this concept to a single person or group are not of much consequence; however, it is interesting to trace the development of this idea.
125
125
126
126
Firstly, we can place a lower bound on the date by referring to the first paper to treat distributed systems as a science.
127
127
This paper was written by Leslie Lamport in 1978 and was called [Time, Clocks and the Ordering of Events in Distributed Systems](./papers/TCOEDS.pdf).
128
-
In it, the concept of the *"happens before"* relation was properly defined as was the notion of a Logical or Lamport Clock.
128
+
In it, the concept of the *"happens before"* relation was properly defined which led directly to the notion of a Logical or Lamport Clock.
129
129
130
-
A couple of interesting things to notice about the space-time diagrams (now known as "Lamport Diagrams") shown in this paper are:
130
+
There are a couple of interesting things to notice about the space-time diagrams (now known as "Lamport Diagrams") shown in this paper:
131
131
132
-
1. Stylistically, they bear a passing resemblance to Feynman Diagrams (maybe there is an influence from physics because the final section of this paper on physical clocks seems only to make sense to physicists; and even then, that proposition is not entirely sound...)
133
-
1.He has time going upwards; which does tend to make them harder to read
132
+
1. Stylistically, they bear a passing resemblance to [Feynman Diagrams](https://en.wikipedia.org/wiki/Feynman_diagram) (maybe there is an influence from physics because the final section of this paper on physical clocks seems only to make sense to physicists; and even then, that proposition is not entirely sound...)
133
+
1.Lamport represents time moving upwards— which does tend to make them harder to read
134
134
135
-
Later, these diagrams have been drawn to show time going left, right or down.
136
-
Lamport however, is one of the few people to draw these diagrams with time going up.
135
+
Later, these diagrams have been adjusted to show time moving to the left, right or down.
136
+
Lamport however, is one of the few people to represent time moving upwards.
137
137
138
-
###Concepts Introduced in Lamport's First Paper
138
+
## Concepts Introduced in Lamport's First Paper
139
139
140
-
* Logical, or Lamport Clocks
141
140
* The *"Happens Before"* relation denoted by the arrow `->` syntax
141
+
* Logical, or Lamport Clocks
142
142
* The idea of the *"clock condition"* that can test whether the happens before relation is satisfied for a pair of events.
143
143
For events `a` and `b`, if `a -> b` then `C(a) < C(b)` where `C(a)` and `C(b)` are the respective *"clock conditions"* of events `a` and `b` - in other words, the value of the Lamport Clock associated with each event.
144
144
* Initial proposition for turning the partial order implemented by Lamport Clocks into a total order.
@@ -148,7 +148,7 @@ Lamport however, is one of the few people to draw these diagrams with time going
148
148
However, no one actually uses this algorithm for the simple reason that it's not fault-tolerant.
149
149
* The observation that distributed processes simulate the execution of State Machines
150
150
151
-
###The "Holy Grail" Paper
151
+
## The "Holy Grail" Paper
152
152
153
153
Although the idea of vector clocks was developed by several researchers independently, and certainly before the publication of this paper, the ["Holy Grail" paper](./papers/holygrail.pdf) is worth reading because it describes how to detect causal relationships in distributed systems.
154
154
@@ -166,7 +166,7 @@ Footnote 3 of this paper makes an interesting comment:
166
166
167
167
At the end of this footnote, two references are given to a paper by Colin Fidge [17] and a paper by Friedemann Mattern [44]
168
168
169
-
###Colin Fidge's Paper: "Timestamps in Message-Passing Systems That Preserve the Partial Ordering"
169
+
## Colin Fidge's Paper: "Timestamps in Message-Passing Systems That Preserve the Partial Ordering"
170
170
171
171
[This paper](./papers/fidge88timestamps.pdf) was published by Colin Fidge in 1988 and without calling them *"vector clocks"* he invented the same concept by saying:
172
172
@@ -176,7 +176,7 @@ At the end of this footnote, two references are given to a paper by Colin Fidge
176
176
>
177
177
> with an integer clock value for every process in the network.
178
178
179
-
###Friedemann Mattern's Paper: "Virtual Time and Global States in Distributed Systems"
179
+
## Friedemann Mattern's Paper: "Virtual Time and Global States in Distributed Systems"
180
180
181
181
[This paper](./papers/VirtTime_GlobState.pdf) was published by Friedemann Mattern also in 1988 where, on the second page, he states:
182
182
@@ -190,7 +190,7 @@ The interesting thing here is that although the Chandy-Lamport algorithm predate
190
190
191
191
Here, Mattern now ties together (apparently for the first time), the use of consistent cuts with the use of clock values held in vectors.
192
192
193
-
###Frank Schmuck's 1988 PhD Paper
193
+
## Frank Schmuck's 1988 PhD Paper
194
194
195
195
In 1988, a German PhD student at Cornell by the name of Frank Schmuck<supid="a1">[1](#f1)</sup> published his thesis on ["The Use of Efficient Broadcast protocols in Distributed Systems"](./papers/Frank%20Schmuck%20PhD%20Paper.pdf)
196
196
@@ -212,7 +212,7 @@ However, footnote 2 says the following:
212
212
213
213
So, let's chase after the paper referenced as LL86.
[This 1986 paper](./papers/Ladin%20and%20Liskov.pdf) by Rivka Ladin and Barbara Liskov did not use the precise name *"vector clock"*; however, it did use the name *multipart timestamps*:
218
218
@@ -223,7 +223,7 @@ So, let's chase after the paper referenced as LL86.
223
223
> where each part is a positive integer.
224
224
> Since there will typically be a small number of replicas (e.g., 3 to 7), using such a timestamp is practical.
225
225
226
-
###Skipping Forward to 1991 and Causal Broadcast
226
+
## Skipping Forward to 1991 and Causal Broadcast
227
227
228
228
Frank Schmuck's doctoral supervisor was Ken Birman, and in 1991, he published a paper called [Lightweight Causal and Atomic Group Multicast](./papers/birman91multicast.pdf).
229
229
In section 4.3 called *"Vector Time"*, they now start to talk about vector clocks, and their description is exactly what we discussed in [lecture 5](./Lecture%205.md#vector-clocks).
@@ -234,7 +234,7 @@ The key part of the Causal Broadcast discussion then states in section 5.1 that
234
234
In class we spoke of the rule that when a message is delivered, the vector clock value in the sender's position should be incremented; but here in Birman's paper, he says effectively *"just merge the sender and receiver's clocks using a pointwise maximum"*.
235
235
Although this sounds like a discrepancy, it turns out that these two approaches are functionally equivalent.
236
236
237
-
###The Chandy-Lamport Paper
237
+
## The Chandy-Lamport Paper
238
238
239
239
In 1985, K. Mani Chandy and Leslie Lamport published a paper that we've already looked at in [Lecture 8](./Lecture%208.md) called ["Distributed Snapshots: Determining Global States in a Distributed System"](./papers/chandy.pdf).
240
240
@@ -254,17 +254,17 @@ Using the analogy of photographing a vast number of migrating birds, this paragr
254
254
1. For practical reasons of synchronization, these multiple snapshots cannot all be taken at the precisely the same point in time
255
255
1. The act of taking a snapshot must not disturb the running system
256
256
257
-
##Who Was the First to Come Up with Primary Backup Replication?
257
+
# Who Was the First to Come Up with Primary Backup Replication?
258
258
259
-
###Alsberg and Day
259
+
## Alsberg and Day
260
260
261
261
The paper that tends to be cited the most here is called ["A Principle for Resilient Sharing of Distributed Resources"](./papers/Alsberg%20and%20Day.pdf) by Peter Alsberg and John Day, first published in October 1976.
262
262
However, the methodology described in the paper does not look very much like what we now call primary backup; nonetheless, Alsberg and Day did produce a working system that operated in the packet switched networks of the day, where data packets sent over the network really could get lost.
263
263
264
264
When reading these old papers that were written when the nearest thing to the "internet" was [ARPANET](https://en.wikipedia.org/wiki/ARPANET) or [CYCLADES](https://en.wikipedia.org/wiki/CYCLADES), you have to admire the ingenuity of these people and their ability to solve hard problems in what we would now describe as a very hostile environment.
265
265
Many (though not all) of the assumptions they made 40+ years ago are still valid today.
266
266
267
-
###Reliable, Autonomic Distributed Store (RADOS)
267
+
## Reliable, Autonomic Distributed Store (RADOS)
268
268
269
269
This is part of the now Open-Source system called [Ceph](https://en.wikipedia.org/wiki/Ceph_(software)).
0 commit comments