SlideShare a Scribd company logo
1 of 76
Download to read offline
Physical and Logical Time
Carlos Baquero
Universidade do Minho
MIEI SDLE 2019
1/73
2/73
Causality
Why should we care?
3/73
Everything is distributed
“Distributed systems once were the territory of computer
science Ph.D.s and software architects tucked off in a
corner somewhere. Thats no longer the case.”
(2014 http://radar.oreilly.com/2014/05/everything-is-distributed)
4/73
Anomalies in Distributed Systems
A buzz, you have a new message, but message is not there yet
Remove the boss from a group, post to it and she sees posting
Read a value but cannot overwrite it
Assorted inconsistencies
5/73
Time
Can’t we use time(stamps) to fix it?
6/73
Time
The problem with time is that
(2015 http://queue.acm.org/detail.cfm?id=2745385)
There is no single universal reference frame
7/73
Light speed is causality speed
CC BY: Hubble ESA, Flickr
8/73
Some properties of Time
Time needs memory (since it is countable change)
Time is local (rate of change slows with acceleration)
Time synchronization is harder at distance
Time is a bad proxy for causality
9/73
Wall-clock time
Clock drift
Clock drift refers to drift between measured time and a
reference time for the same measurement unit.
Quartz clocks: From 10−6 to 10−8 seconds per second.
10−6 seconds per second means 1 one second each 11.6 days.
Atomic clocks: About 10−13 seconds per second.
A second is defined in terms of transitions of Cesium-133.
Coordinated Universal Time (UTC), inserts or removes
seconds to sync with orbital time.
10/73
External vs internal synchronization
External synchronization states a precision with respect to an
authoritative reference. Internal synchronization states a precision
among two nodes (if one is authoritative it is also external)
External For a band D > 0 and UTC source S we have
| S(t) − Ci (t) |< D
Internal For a band D > 0 we have | Cj (t) − Ci (t) |< D
An externally synchronized system at band D is necessarily also at
2D internal synchronization.
11/73
Monotonicity
Some uses (e.g. make) require time monotonicity
(t > t ⇒ C(t ) > C(t)) on wall-clock adjusting.
Correcting advanced clocks can be obtained by reducing the time
rate until aimed synchrony is reached.
12/73
Synchronization: Synchronous system
Knowing the transit time trans and receiving origin time t,
one could set to t + trans
However trans cam vary between tmin and tmax
Using t + tmin or t + tmax the uncertainty is
u = tmax − tmin.
But, using t + (tmin + tmax)/2 the uncertainty becomes u/2.
Asynchronous
Now transit time varies between tmin and +∞
How to update the clocks?
12/73
Synchronization: Synchronous system
Knowing the transit time trans and receiving origin time t,
one could set to t + trans
However trans cam vary between tmin and tmax
Using t + tmin or t + tmax the uncertainty is
u = tmax − tmin.
But, using t + (tmin + tmax)/2 the uncertainty becomes u/2.
Asynchronous
Now transit time varies between tmin and +∞
How to update the clocks?
12/73
Synchronization: Synchronous system
Knowing the transit time trans and receiving origin time t,
one could set to t + trans
However trans cam vary between tmin and tmax
Using t + tmin or t + tmax the uncertainty is
u = tmax − tmin.
But, using t + (tmin + tmax)/2 the uncertainty becomes u/2.
Asynchronous
Now transit time varies between tmin and +∞
How to update the clocks?
13/73
Synchronization: Asynchronous system
Cristian’s algorithm
Send a request mr that triggers response mt carrying time t
Measure the roud-trip-time of request and reply as tr .
Set clock to t + tr /2 assuming a balanced round trip
Precision can be increased by repeating the protocol until a
low tr occurs
Berkeley Algorithm
A coordinator measures RTT to the other nodes and sets target
time to the average of times. New times for nodes to set are
propagated as deltas to their local times, in order to be resilient to
propagation delays.
13/73
Synchronization: Asynchronous system
Cristian’s algorithm
Send a request mr that triggers response mt carrying time t
Measure the roud-trip-time of request and reply as tr .
Set clock to t + tr /2 assuming a balanced round trip
Precision can be increased by repeating the protocol until a
low tr occurs
Berkeley Algorithm
A coordinator measures RTT to the other nodes and sets target
time to the average of times. New times for nodes to set are
propagated as deltas to their local times, in order to be resilient to
propagation delays.
14/73
Causality – Happens-before
Lamport 78
(1978 http://amturing.acm.org/p558-lamport.pdf)
15/73
Causality
A social interaction
Alice decides to have dinner
She tells that to Bob and he agrees
Meanwhile Chris was bored
Bob tells Chris and he asks to join for dinner
16/73
Causality is a partial order relation
A(lice) •
Dinner?
// • //

•
B(ob) •
Jogging
// •
Yes, let’s do it
// •

C(hris) • // •
Bored . . .
// •
Can I join?
Time //
Causally: “Alice wants dinner” “Chris is bored”
Timeline: “Alice wants dinner”  “Chris is bored”
17/73
Causality is only potential influence
A(lice) •
Dinner?
// • //

•
B(ob) •
Jogging
// •
Yes, let’s do it
// •

C(hris) • // •
Bored . . .
// •
Can I join?
Time //
Causally: “Bob is jogging” → “Bob says: Yes, let’s do it”
. . . but they are probably unrelated
18/73
Causality is only potential influence
Past statements only potentially influence future ones
a = 5;
b = 5;
if (a  2) c=2;
Causally: “b = 5;” → “if (a  2) c=2;”
. . . but in fact not
19/73
Causality relation
How to track it?
20/73
Causality relation
How to track it? Maybe read Vector Clock entry in Wikipedia?
(2015 https://en.wikipedia.org/wiki/Vector clock)
Maybe start with something simpler: Causal histories
21/73
Causal histories
Schwarz  Mattern 94
(1994 https://www.vs.inf.ethz.ch/publ/papers/holygrail.pdf)
22/73
Uniquely tag each event
For instance, node name and growing counter
A(lice) •
a1
Dinner?
// •
a2
//

•
a3
B(ob) •
b1
Jogging
// •
b2
Yes, let’s do it
// •
b3

C(hris) •
c1
// •
c2
Bored . . .
// •
c3
Can I join?
23/73
Causal histories
Collect memories as sets of unique events
Set inclusion explains causality
{a1, b1} ⊂ {a1, a2, b1}
You are in my past if I know your history
If we don’t know each other’s history, we are concurrent
If our histories are the same, we are the same
24/73
Causal histories
A •
{a1}
// •
{a1,a2}
//

•
{a1,a2,a3}
B •
{b1}
// •
{a1,a2,b1,b2}
// •
{a1,a2,b1,b2,b3}

C •
{c1}
// •
{c1,c2}
// •
{a1,a2,b1,b2,b3,c1,c2,c3}
25/73
Causal histories
Message reception
A •
{a1}
// •
{a1,a2}
//

•
{a1,a2,a3}
B •
{b1}
//
{a1,a2,b1,b2}
// •
{a1,a2,b1,b2,b3}

C •
{c1}
// •
{c1,c2}
// •
{a1,a2,b1,b2,b3,c1,c2,c3}
receive {a1, a2} at node b with {b1} yields {b1} ∪ {a1, a2} ∪ {b2}
26/73
Causal histories
Causality check
A •
{a1}
//{a1,a2}
//

•
{a1,a2,a3}
B •
{b1}
//
{a1,a2,b1,b2}
// •
{a1,a2,b1,b2,b3}

C •
{c1}
// •
{c1,c2}
// •
{a1,a2,b1,b2,b3,c1,c2,c3}
Check → iff {a1, a2} ⊂ {a1, a2, b1, b2}
27/73
Causal histories
Faster causality check
A •
{a1}
//{a1,a2}
//

•
{a1,a2,a3}
B •
{b1}
//
{a1,a2,b1,b2}
// •
{a1,a2,b1,b2,b3}

C •
{c1}
// •
{c1,c2}
// •
{a1,a2,b1,b2,b3,c1,c2,c3}
Check → iff a2 ∈ {a1, a2, b1, b2}
28/73
Causal histories
A •
{a1}
// •
{a1,a2}
//

•
{a1,a2,a3}
B •
{b1}
// •
{a1,a2,b1,b2}
// •
{a1,a2,b1,b2,b3}

C •
{c1}
// •
{c1,c2}
// •
{a1,a2,b1,b2,b3,c1,c2,c3}
Note: {en} ⊂ Cx ⇒ {e1 . . . en} ⊂ Cx
29/73
Causal histories
A •
{a1}
// •
{a1,a2}
//

•
{a1,a2,a3}
B •
{b1}
// •
{a1,a2,b1,b2}
// •
{a1,a2,b1,b2,b3}

C •
{c1}
// •
{c1,c2}
// •
{a1,a2,b1,b2,b3,c1,c2,c3}
Lots of redundancy that can be compressed
30/73
Vector clocks
Mattern Fidge, 88
1988 (https://www.vs.inf.ethz.ch/publ/papers/VirtTimeGlobStates.pdf)
(http://zoo.cs.yale.edu/classes/cs426/2012/lab/bib/fidge88timestamps.pdf)
31/73
Vector clocks
Compacting causal histories
{a1, a2, b1, b2, b3, c1, c2, c3}
{a → 2, b → 3, c → 3}
Finally a vector, assuming a fixed number of processes with totally
ordered identifiers
[2, 3, 3]
32/73
Vector clocks
A •
[1,0,0]
// •
[2,0,0]
//

•
[3,0,0]
B •
[0,1,0]
// •
[2,2,0]
// •
[2,3,0]

C •
[0,0,1]
// •
[0,0,2]
// •
[2,3,3]
33/73
Vector clocks
Message reception (step 1)
Set union becomes join by point-wise maximum in vectors
A •
[1,0,0]
// •
[2,0,0]
//

•
[3,0,0]
B •
[0,1,0]
//
[2,2,0]
// •
[2,3,0]

C •
[0,0,1]
// •
[0,0,2]
// •
[2,3,3]
receive [2, 0, 0] at b with [0, 1, 0] yields incb( ([2, 0, 0], [0, 1, 0]))
34/73
Vector clocks
Message reception (step 2)
Set union becomes join by point-wise maximum in vectors
A •
[1,0,0]
// •
[2,0,0]
//

•
[3,0,0]
B •
[0,1,0]
//
[2,2,0]
// •
[2,3,0]

C •
[0,0,1]
// •
[0,0,2]
// •
[2,3,3]
incb( ([2, 0, 0], [0, 1, 0])) ≡ incb([2, 1, 0]) ≡ [2, 2, 0]
35/73
Vector clocks
Causality check
A •
[1,0,0]
//
[2,0,0]
//

•
[3,0,0]
B •
[0,1,0]
//
[2,2,0]
// •
[2,3,0]

C •
[0,0,1]
// •
[0,0,2]
// •
[2,3,3]
Check → iff point-wise check 2 ≤ 2, 0 ≤ 2, 0 ≤ 0
36/73
Vector clocks
Graphically
[2, 3, 3] ≡ {A → 2, B → 3, C → 3} ≡ A B C
1
2
3
37/73
Vector clocks
Graphically comparing
[3, 3, 2] [2, 3, 3]
38/73
Vector clocks
Graphically comparing
[2, 3, 2]  [2, 3, 3]
39/73
Vector clocks
Graphical difference
[2, 3, 3] − [2, 3, 2] = {c3}
− =
40/73
Vector clocks
Graphical message reception
Node b, with [2, 0, 0] is receiving a message with [0, 1, 0]
We need to combine the two vectors and update b entry
41/73
Vector clocks
Graphical message reception
Node b, with [2, 0, 0]:
A B C
id
1
2
42/73
Vector clocks
Graphical message reception
Point-wise maximum of [2, 0, 0] and [0, 1, 0]
max( , ) =
43/73
Vector clocks
Graphical message reception
Register a new event on the result
event( ) =
44/73
Vector clocks
Faster causality check
Comparing vectors is linear on the vector size
This can be improved by tracking the last event
45/73
Vector clocks with dots
Decouple dot of last event
[2, 0, 0] becomes [1, 0, 0]a2
[2, 2, 0] becomes [2, 1, 0]b2
The causal past excludes the event itself
Check [2, 0, 0] → [2, 2, 0]?
Check [1, 0, 0]a2 → [2, 1, 0]b2 iff dot a2 index 2 ≤ 2
46/73
Registering relevant events
Not always important to track all events
Track only update events in data replicas
Applications in:
File-Systems
Databases
Version Control
47/73
Dynamo
DeCandia et al 07
Causally tracking of write/put operations
(http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf)
48/73
Causal histories with only some relevant events
Relevant events are marked with a • and get an unique tag/dot
A •
{a1}
// ◦
{a1}
//

•
{a1,a2}
B •
{b1}
// •
{a1,b1,b2}
M // ◦
{a1,b1,b2}

C ◦
{}
// ◦
{}
// ◦
{a1,b1b2}
Other events get a ◦ and don’t add to history
49/73
Causal histories with only some relevant events
Concurrent states {a1} {b1} lead to a • marked merge M
A •
{a1}
// ◦
{a1}
//

•
{a1,a2}
B •
{b1}
// •
{a1,b1,b2}
M // ◦
{a1,b1,b2}

C ◦
{}
// ◦
{}
// ◦
{a1,b1b2}
Causally dominated state {} → {a1, b1, b2} is simply replaced
50/73
Causal histories with versions not immediately merged
Versions can be collected and merge deferred
A •
{a1}
// ◦
{a1}
//

•
{a1,a2}
B •
{b1}
// ◦
{a1},{b1}
// •
{a1,b1,b2}
M
// ◦
{a1,b1,b2}

C ◦
{}
// ◦
{}
// ◦
{a1,b1b2}
Causal histories are only merged upon version merging in a new •
51/73
Version vectors
Parker et al 83
(1983 http://zoo.cs.yale.edu/classes/cs422/2013/bib/parker83detection.pdf)
52/73
Version vectors
A •
[1,0,0]
// ◦
[1,0,0]
//

•
[2,0,0]
B •
[0,1,0]
// •
[1,2,0]
M // ◦
[1,2,0]

C ◦
[0,0,0]
// ◦
[0,0,0]
// ◦
[1,2,0]
53/73
Can Causality scale?
Charron-Bost 91
One entry needed per source of concurrency
(1991 https://doi.org/10.1016/0020-0190(91)90055-M)
54/73
Scaling Causality
Scaling at the edge (DVVs)
Mediate interaction by DC proxies
Support failover and DC switching
One entry per proxy (not per client)
Dynamic concurrency degree (ITCs)
Creation and retirement of active entities
Transparent tracking with minimal coordination
Causality tracing under concurrency across services
55/73
Scaling Causality
Dynamo like, get/put interface
A ◦
get
Meet?
// •
put
Mon

B ◦
get
Meet?
// •
put
Fri

Ss ◦
Meet?
//
HH
◦
@@
Meet?
//
Fri
// ?
Conditional writes
Overwrite first value
Multi-Value ([1, 0] [0, 1], one entry per client!)
56/73
Scaling Causality
Causal histories
Dynamo like, get/put interface
A ◦
{}
// •
put
{}

B ◦
{}
// •
put
{}

Ss ◦
{}
//
HH
◦
@@
{}
//
{s1}
//
{s1},{s2}
St
57/73
Scaling Causality
DVVs. Almeida et al 14
Dotted Version Vectors
(2014 https://link.springer.com/chapter/10.1007/978-3-662-43352-2 6)
58/73
Scaling Causality
Dotted Version Vectors
[0, 0]s1 [0, 0]s2
S T S T
59/73
Scaling Causality
Dotted Version Vectors
Gets get all values, with compact causal context
[0, 0]s1 [0, 0]s2 = [2, 0]
S T S T = S T
60/73
Scaling Causality
Dotted Version Vectors
Puts can go to alternative servers
Server T can get a put with context [2, 0]
[0, 2]t3 [2, 0]t4
S T S T
61/73
Scaling Causality
Dotted Version Vectors
DVVs are used in the Riak Key-value store, deployed in the British
NHS, BET365 and other global companies.
62/73
Dynamic Causality
Tracking causality requires exclusive access to identities
A B C
id
1
2
→ A B C
id
1
2
To avoid preconfiguring identities, id space can be split and joined
63/73
Dynamic Causality
ITCs. Almeida et al 08
(2008 https://link.springer.com/chapter/10.1007/978-3-540-92221-6 18)
64/73
Dynamic Causality
Interval Tree Clocks
A seed node controls the initial id space
id
65/73
Dynamic Causality
Interval Tree Clocks
Registering events can use any portion above the controlled id
id
1
2
66/73
Dynamic Causality
Interval Tree Clocks
Ids can be split from any available entity
67/73
Dynamic Causality
Interval Tree Clocks
. . . and be split again
68/73
Dynamic Causality
Interval Tree Clocks
Entities can register new events and become concurrent
69/73
Dynamic Causality
Interval Tree Clocks
Any two entries can merge together
70/73
Dynamic Causality
Interval Tree Clocks
. . . eventually collecting the whole id space
71/73
Dynamic Causality
Interval Tree Clocks
. . . and simplifying the encoding of events
72/73
Dynamic Causality
Interval Tree Clocks
ITCs are used in concurrency tracing and debugging, and in
distributed settings within the Pivot tracing system.
73/73
Closing notes
Causality is important because time is limited
Causality is about memory of relevant events
Causal histories are very simple encodings of causality
VC, DVV, ITC do efficient encoding of causal histories
All mechanisms are only encoding of causal histories
Graphical representations allow visualization of causality, this is
useful in comparing existing mechanisms and to develop novel ones.

More Related Content

Similar to Physical and Logical Time

Distributed System by Pratik Tambekar
Distributed System by Pratik TambekarDistributed System by Pratik Tambekar
Distributed System by Pratik TambekarPratik Tambekar
 
Chapter 6-Synchronozation2.ppt
Chapter 6-Synchronozation2.pptChapter 6-Synchronozation2.ppt
Chapter 6-Synchronozation2.pptMeymunaMohammed1
 
Unit iii-Synchronization
Unit iii-SynchronizationUnit iii-Synchronization
Unit iii-SynchronizationDhivyaa C.R
 
Distributed Beamforming in Sensor Networks
Distributed Beamforming in Sensor NetworksDistributed Beamforming in Sensor Networks
Distributed Beamforming in Sensor NetworksDaniel Tai
 
Distributed system TimeNState-Tanenbaum.ppt
Distributed system TimeNState-Tanenbaum.pptDistributed system TimeNState-Tanenbaum.ppt
Distributed system TimeNState-Tanenbaum.pptTantraNathjha1
 
Semet Gecco06
Semet Gecco06Semet Gecco06
Semet Gecco06ysemet
 
Distributed computing time
Distributed computing timeDistributed computing time
Distributed computing timeDeepak John
 
Accelerating Dynamic Time Warping Subsequence Search with GPU
Accelerating Dynamic Time Warping Subsequence Search with GPUAccelerating Dynamic Time Warping Subsequence Search with GPU
Accelerating Dynamic Time Warping Subsequence Search with GPUDavide Nardone
 
Clock Skew Compensation Algorithm Immune to Floating-Point Precision Loss
Clock Skew Compensation Algorithm Immune to Floating-Point Precision LossClock Skew Compensation Algorithm Immune to Floating-Point Precision Loss
Clock Skew Compensation Algorithm Immune to Floating-Point Precision LossXi'an Jiaotong-Liverpool University
 
Clock synchronization in distributed system
Clock synchronization in distributed systemClock synchronization in distributed system
Clock synchronization in distributed systemSunita Sahu
 
Message broadcasts and logical time of process
Message broadcasts and logical time of processMessage broadcasts and logical time of process
Message broadcasts and logical time of processJawid Ahmad Baktash
 
Lesson 05 - Time in Distrributed System.pptx
Lesson 05 - Time in Distrributed System.pptxLesson 05 - Time in Distrributed System.pptx
Lesson 05 - Time in Distrributed System.pptxLagamaPasala
 
A robust blind and secure watermarking scheme using positive semi definite ma...
A robust blind and secure watermarking scheme using positive semi definite ma...A robust blind and secure watermarking scheme using positive semi definite ma...
A robust blind and secure watermarking scheme using positive semi definite ma...ijcsit
 

Similar to Physical and Logical Time (20)

Distributed System by Pratik Tambekar
Distributed System by Pratik TambekarDistributed System by Pratik Tambekar
Distributed System by Pratik Tambekar
 
Chapter 6 synchronization
Chapter 6 synchronizationChapter 6 synchronization
Chapter 6 synchronization
 
Chapter 6-Synchronozation2.ppt
Chapter 6-Synchronozation2.pptChapter 6-Synchronozation2.ppt
Chapter 6-Synchronozation2.ppt
 
Unit iii-Synchronization
Unit iii-SynchronizationUnit iii-Synchronization
Unit iii-Synchronization
 
Distributed Beamforming in Sensor Networks
Distributed Beamforming in Sensor NetworksDistributed Beamforming in Sensor Networks
Distributed Beamforming in Sensor Networks
 
Distributed system TimeNState-Tanenbaum.ppt
Distributed system TimeNState-Tanenbaum.pptDistributed system TimeNState-Tanenbaum.ppt
Distributed system TimeNState-Tanenbaum.ppt
 
Semet Gecco06
Semet Gecco06Semet Gecco06
Semet Gecco06
 
Discontinuous Galerkin Timestepping for Nonlinear Parabolic Problems
Discontinuous Galerkin Timestepping for Nonlinear Parabolic ProblemsDiscontinuous Galerkin Timestepping for Nonlinear Parabolic Problems
Discontinuous Galerkin Timestepping for Nonlinear Parabolic Problems
 
Distributed computing time
Distributed computing timeDistributed computing time
Distributed computing time
 
6.Distributed Operating Systems
6.Distributed Operating Systems6.Distributed Operating Systems
6.Distributed Operating Systems
 
Accelerating Dynamic Time Warping Subsequence Search with GPU
Accelerating Dynamic Time Warping Subsequence Search with GPUAccelerating Dynamic Time Warping Subsequence Search with GPU
Accelerating Dynamic Time Warping Subsequence Search with GPU
 
Clock Skew Compensation Algorithm Immune to Floating-Point Precision Loss
Clock Skew Compensation Algorithm Immune to Floating-Point Precision LossClock Skew Compensation Algorithm Immune to Floating-Point Precision Loss
Clock Skew Compensation Algorithm Immune to Floating-Point Precision Loss
 
Clock synchronization in distributed system
Clock synchronization in distributed systemClock synchronization in distributed system
Clock synchronization in distributed system
 
Message broadcasts and logical time of process
Message broadcasts and logical time of processMessage broadcasts and logical time of process
Message broadcasts and logical time of process
 
Synch
SynchSynch
Synch
 
Lesson 05 - Time in Distrributed System.pptx
Lesson 05 - Time in Distrributed System.pptxLesson 05 - Time in Distrributed System.pptx
Lesson 05 - Time in Distrributed System.pptx
 
SPAA11
SPAA11SPAA11
SPAA11
 
A robust blind and secure watermarking scheme using positive semi definite ma...
A robust blind and secure watermarking scheme using positive semi definite ma...A robust blind and secure watermarking scheme using positive semi definite ma...
A robust blind and secure watermarking scheme using positive semi definite ma...
 
Os3
Os3Os3
Os3
 
Chapter 10
Chapter 10Chapter 10
Chapter 10
 

Recently uploaded

Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoSérgio Sacani
 
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...Sérgio Sacani
 
Unlocking the Potential: Deep dive into ocean of Ceramic Magnets.pptx
Unlocking  the Potential: Deep dive into ocean of Ceramic Magnets.pptxUnlocking  the Potential: Deep dive into ocean of Ceramic Magnets.pptx
Unlocking the Potential: Deep dive into ocean of Ceramic Magnets.pptxanandsmhk
 
Botany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdfBotany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdfSumit Kumar yadav
 
Traditional Agroforestry System in India- Shifting Cultivation, Taungya, Home...
Traditional Agroforestry System in India- Shifting Cultivation, Taungya, Home...Traditional Agroforestry System in India- Shifting Cultivation, Taungya, Home...
Traditional Agroforestry System in India- Shifting Cultivation, Taungya, Home...jana861314
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsSumit Kumar yadav
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)Areesha Ahmad
 
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCRStunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCRDelhi Call girls
 
Cultivation of KODO MILLET . made by Ghanshyam pptx
Cultivation of KODO MILLET . made by Ghanshyam pptxCultivation of KODO MILLET . made by Ghanshyam pptx
Cultivation of KODO MILLET . made by Ghanshyam pptxpradhanghanshyam7136
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksSérgio Sacani
 
Biological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdfBiological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdfmuntazimhurra
 
Broad bean, Lima Bean, Jack bean, Ullucus.pptx
Broad bean, Lima Bean, Jack bean, Ullucus.pptxBroad bean, Lima Bean, Jack bean, Ullucus.pptx
Broad bean, Lima Bean, Jack bean, Ullucus.pptxjana861314
 
GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)Areesha Ahmad
 
Biopesticide (2).pptx .This slides helps to know the different types of biop...
Biopesticide (2).pptx  .This slides helps to know the different types of biop...Biopesticide (2).pptx  .This slides helps to know the different types of biop...
Biopesticide (2).pptx .This slides helps to know the different types of biop...RohitNehra6
 
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisRaman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisDiwakar Mishra
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTSérgio Sacani
 
Spermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatidSpermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatidSarthak Sekhar Mondal
 
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...anilsa9823
 

Recently uploaded (20)

Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on Io
 
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
 
Unlocking the Potential: Deep dive into ocean of Ceramic Magnets.pptx
Unlocking  the Potential: Deep dive into ocean of Ceramic Magnets.pptxUnlocking  the Potential: Deep dive into ocean of Ceramic Magnets.pptx
Unlocking the Potential: Deep dive into ocean of Ceramic Magnets.pptx
 
Botany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdfBotany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdf
 
Traditional Agroforestry System in India- Shifting Cultivation, Taungya, Home...
Traditional Agroforestry System in India- Shifting Cultivation, Taungya, Home...Traditional Agroforestry System in India- Shifting Cultivation, Taungya, Home...
Traditional Agroforestry System in India- Shifting Cultivation, Taungya, Home...
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questions
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)
 
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCRStunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
 
Cultivation of KODO MILLET . made by Ghanshyam pptx
Cultivation of KODO MILLET . made by Ghanshyam pptxCultivation of KODO MILLET . made by Ghanshyam pptx
Cultivation of KODO MILLET . made by Ghanshyam pptx
 
The Philosophy of Science
The Philosophy of ScienceThe Philosophy of Science
The Philosophy of Science
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disks
 
Biological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdfBiological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdf
 
Broad bean, Lima Bean, Jack bean, Ullucus.pptx
Broad bean, Lima Bean, Jack bean, Ullucus.pptxBroad bean, Lima Bean, Jack bean, Ullucus.pptx
Broad bean, Lima Bean, Jack bean, Ullucus.pptx
 
CELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdfCELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdf
 
GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)
 
Biopesticide (2).pptx .This slides helps to know the different types of biop...
Biopesticide (2).pptx  .This slides helps to know the different types of biop...Biopesticide (2).pptx  .This slides helps to know the different types of biop...
Biopesticide (2).pptx .This slides helps to know the different types of biop...
 
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisRaman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOST
 
Spermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatidSpermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatid
 
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
 

Physical and Logical Time

  • 1. Physical and Logical Time Carlos Baquero Universidade do Minho MIEI SDLE 2019 1/73
  • 3. 3/73 Everything is distributed “Distributed systems once were the territory of computer science Ph.D.s and software architects tucked off in a corner somewhere. Thats no longer the case.” (2014 http://radar.oreilly.com/2014/05/everything-is-distributed)
  • 4. 4/73 Anomalies in Distributed Systems A buzz, you have a new message, but message is not there yet Remove the boss from a group, post to it and she sees posting Read a value but cannot overwrite it Assorted inconsistencies
  • 5. 5/73 Time Can’t we use time(stamps) to fix it?
  • 6. 6/73 Time The problem with time is that (2015 http://queue.acm.org/detail.cfm?id=2745385) There is no single universal reference frame
  • 7. 7/73 Light speed is causality speed CC BY: Hubble ESA, Flickr
  • 8. 8/73 Some properties of Time Time needs memory (since it is countable change) Time is local (rate of change slows with acceleration) Time synchronization is harder at distance Time is a bad proxy for causality
  • 9. 9/73 Wall-clock time Clock drift Clock drift refers to drift between measured time and a reference time for the same measurement unit. Quartz clocks: From 10−6 to 10−8 seconds per second. 10−6 seconds per second means 1 one second each 11.6 days. Atomic clocks: About 10−13 seconds per second. A second is defined in terms of transitions of Cesium-133. Coordinated Universal Time (UTC), inserts or removes seconds to sync with orbital time.
  • 10. 10/73 External vs internal synchronization External synchronization states a precision with respect to an authoritative reference. Internal synchronization states a precision among two nodes (if one is authoritative it is also external) External For a band D > 0 and UTC source S we have | S(t) − Ci (t) |< D Internal For a band D > 0 we have | Cj (t) − Ci (t) |< D An externally synchronized system at band D is necessarily also at 2D internal synchronization.
  • 11. 11/73 Monotonicity Some uses (e.g. make) require time monotonicity (t > t ⇒ C(t ) > C(t)) on wall-clock adjusting. Correcting advanced clocks can be obtained by reducing the time rate until aimed synchrony is reached.
  • 12. 12/73 Synchronization: Synchronous system Knowing the transit time trans and receiving origin time t, one could set to t + trans However trans cam vary between tmin and tmax Using t + tmin or t + tmax the uncertainty is u = tmax − tmin. But, using t + (tmin + tmax)/2 the uncertainty becomes u/2. Asynchronous Now transit time varies between tmin and +∞ How to update the clocks?
  • 13. 12/73 Synchronization: Synchronous system Knowing the transit time trans and receiving origin time t, one could set to t + trans However trans cam vary between tmin and tmax Using t + tmin or t + tmax the uncertainty is u = tmax − tmin. But, using t + (tmin + tmax)/2 the uncertainty becomes u/2. Asynchronous Now transit time varies between tmin and +∞ How to update the clocks?
  • 14. 12/73 Synchronization: Synchronous system Knowing the transit time trans and receiving origin time t, one could set to t + trans However trans cam vary between tmin and tmax Using t + tmin or t + tmax the uncertainty is u = tmax − tmin. But, using t + (tmin + tmax)/2 the uncertainty becomes u/2. Asynchronous Now transit time varies between tmin and +∞ How to update the clocks?
  • 15. 13/73 Synchronization: Asynchronous system Cristian’s algorithm Send a request mr that triggers response mt carrying time t Measure the roud-trip-time of request and reply as tr . Set clock to t + tr /2 assuming a balanced round trip Precision can be increased by repeating the protocol until a low tr occurs Berkeley Algorithm A coordinator measures RTT to the other nodes and sets target time to the average of times. New times for nodes to set are propagated as deltas to their local times, in order to be resilient to propagation delays.
  • 16. 13/73 Synchronization: Asynchronous system Cristian’s algorithm Send a request mr that triggers response mt carrying time t Measure the roud-trip-time of request and reply as tr . Set clock to t + tr /2 assuming a balanced round trip Precision can be increased by repeating the protocol until a low tr occurs Berkeley Algorithm A coordinator measures RTT to the other nodes and sets target time to the average of times. New times for nodes to set are propagated as deltas to their local times, in order to be resilient to propagation delays.
  • 17. 14/73 Causality – Happens-before Lamport 78 (1978 http://amturing.acm.org/p558-lamport.pdf)
  • 18. 15/73 Causality A social interaction Alice decides to have dinner She tells that to Bob and he agrees Meanwhile Chris was bored Bob tells Chris and he asks to join for dinner
  • 19. 16/73 Causality is a partial order relation A(lice) • Dinner? // • // • B(ob) • Jogging // • Yes, let’s do it // • C(hris) • // • Bored . . . // • Can I join? Time // Causally: “Alice wants dinner” “Chris is bored” Timeline: “Alice wants dinner” “Chris is bored”
  • 20. 17/73 Causality is only potential influence A(lice) • Dinner? // • // • B(ob) • Jogging // • Yes, let’s do it // • C(hris) • // • Bored . . . // • Can I join? Time // Causally: “Bob is jogging” → “Bob says: Yes, let’s do it” . . . but they are probably unrelated
  • 21. 18/73 Causality is only potential influence Past statements only potentially influence future ones a = 5; b = 5; if (a 2) c=2; Causally: “b = 5;” → “if (a 2) c=2;” . . . but in fact not
  • 23. 20/73 Causality relation How to track it? Maybe read Vector Clock entry in Wikipedia? (2015 https://en.wikipedia.org/wiki/Vector clock) Maybe start with something simpler: Causal histories
  • 24. 21/73 Causal histories Schwarz Mattern 94 (1994 https://www.vs.inf.ethz.ch/publ/papers/holygrail.pdf)
  • 25. 22/73 Uniquely tag each event For instance, node name and growing counter A(lice) • a1 Dinner? // • a2 // • a3 B(ob) • b1 Jogging // • b2 Yes, let’s do it // • b3 C(hris) • c1 // • c2 Bored . . . // • c3 Can I join?
  • 26. 23/73 Causal histories Collect memories as sets of unique events Set inclusion explains causality {a1, b1} ⊂ {a1, a2, b1} You are in my past if I know your history If we don’t know each other’s history, we are concurrent If our histories are the same, we are the same
  • 27. 24/73 Causal histories A • {a1} // • {a1,a2} // • {a1,a2,a3} B • {b1} // • {a1,a2,b1,b2} // • {a1,a2,b1,b2,b3} C • {c1} // • {c1,c2} // • {a1,a2,b1,b2,b3,c1,c2,c3}
  • 28. 25/73 Causal histories Message reception A • {a1} // • {a1,a2} // • {a1,a2,a3} B • {b1} // {a1,a2,b1,b2} // • {a1,a2,b1,b2,b3} C • {c1} // • {c1,c2} // • {a1,a2,b1,b2,b3,c1,c2,c3} receive {a1, a2} at node b with {b1} yields {b1} ∪ {a1, a2} ∪ {b2}
  • 29. 26/73 Causal histories Causality check A • {a1} //{a1,a2} // • {a1,a2,a3} B • {b1} // {a1,a2,b1,b2} // • {a1,a2,b1,b2,b3} C • {c1} // • {c1,c2} // • {a1,a2,b1,b2,b3,c1,c2,c3} Check → iff {a1, a2} ⊂ {a1, a2, b1, b2}
  • 30. 27/73 Causal histories Faster causality check A • {a1} //{a1,a2} // • {a1,a2,a3} B • {b1} // {a1,a2,b1,b2} // • {a1,a2,b1,b2,b3} C • {c1} // • {c1,c2} // • {a1,a2,b1,b2,b3,c1,c2,c3} Check → iff a2 ∈ {a1, a2, b1, b2}
  • 31. 28/73 Causal histories A • {a1} // • {a1,a2} // • {a1,a2,a3} B • {b1} // • {a1,a2,b1,b2} // • {a1,a2,b1,b2,b3} C • {c1} // • {c1,c2} // • {a1,a2,b1,b2,b3,c1,c2,c3} Note: {en} ⊂ Cx ⇒ {e1 . . . en} ⊂ Cx
  • 32. 29/73 Causal histories A • {a1} // • {a1,a2} // • {a1,a2,a3} B • {b1} // • {a1,a2,b1,b2} // • {a1,a2,b1,b2,b3} C • {c1} // • {c1,c2} // • {a1,a2,b1,b2,b3,c1,c2,c3} Lots of redundancy that can be compressed
  • 33. 30/73 Vector clocks Mattern Fidge, 88 1988 (https://www.vs.inf.ethz.ch/publ/papers/VirtTimeGlobStates.pdf) (http://zoo.cs.yale.edu/classes/cs426/2012/lab/bib/fidge88timestamps.pdf)
  • 34. 31/73 Vector clocks Compacting causal histories {a1, a2, b1, b2, b3, c1, c2, c3} {a → 2, b → 3, c → 3} Finally a vector, assuming a fixed number of processes with totally ordered identifiers [2, 3, 3]
  • 35. 32/73 Vector clocks A • [1,0,0] // • [2,0,0] // • [3,0,0] B • [0,1,0] // • [2,2,0] // • [2,3,0] C • [0,0,1] // • [0,0,2] // • [2,3,3]
  • 36. 33/73 Vector clocks Message reception (step 1) Set union becomes join by point-wise maximum in vectors A • [1,0,0] // • [2,0,0] // • [3,0,0] B • [0,1,0] // [2,2,0] // • [2,3,0] C • [0,0,1] // • [0,0,2] // • [2,3,3] receive [2, 0, 0] at b with [0, 1, 0] yields incb( ([2, 0, 0], [0, 1, 0]))
  • 37. 34/73 Vector clocks Message reception (step 2) Set union becomes join by point-wise maximum in vectors A • [1,0,0] // • [2,0,0] // • [3,0,0] B • [0,1,0] // [2,2,0] // • [2,3,0] C • [0,0,1] // • [0,0,2] // • [2,3,3] incb( ([2, 0, 0], [0, 1, 0])) ≡ incb([2, 1, 0]) ≡ [2, 2, 0]
  • 38. 35/73 Vector clocks Causality check A • [1,0,0] // [2,0,0] // • [3,0,0] B • [0,1,0] // [2,2,0] // • [2,3,0] C • [0,0,1] // • [0,0,2] // • [2,3,3] Check → iff point-wise check 2 ≤ 2, 0 ≤ 2, 0 ≤ 0
  • 39. 36/73 Vector clocks Graphically [2, 3, 3] ≡ {A → 2, B → 3, C → 3} ≡ A B C 1 2 3
  • 42. 39/73 Vector clocks Graphical difference [2, 3, 3] − [2, 3, 2] = {c3} − =
  • 43. 40/73 Vector clocks Graphical message reception Node b, with [2, 0, 0] is receiving a message with [0, 1, 0] We need to combine the two vectors and update b entry
  • 44. 41/73 Vector clocks Graphical message reception Node b, with [2, 0, 0]: A B C id 1 2
  • 45. 42/73 Vector clocks Graphical message reception Point-wise maximum of [2, 0, 0] and [0, 1, 0] max( , ) =
  • 46. 43/73 Vector clocks Graphical message reception Register a new event on the result event( ) =
  • 47. 44/73 Vector clocks Faster causality check Comparing vectors is linear on the vector size This can be improved by tracking the last event
  • 48. 45/73 Vector clocks with dots Decouple dot of last event [2, 0, 0] becomes [1, 0, 0]a2 [2, 2, 0] becomes [2, 1, 0]b2 The causal past excludes the event itself Check [2, 0, 0] → [2, 2, 0]? Check [1, 0, 0]a2 → [2, 1, 0]b2 iff dot a2 index 2 ≤ 2
  • 49. 46/73 Registering relevant events Not always important to track all events Track only update events in data replicas Applications in: File-Systems Databases Version Control
  • 50. 47/73 Dynamo DeCandia et al 07 Causally tracking of write/put operations (http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf)
  • 51. 48/73 Causal histories with only some relevant events Relevant events are marked with a • and get an unique tag/dot A • {a1} // ◦ {a1} // • {a1,a2} B • {b1} // • {a1,b1,b2} M // ◦ {a1,b1,b2} C ◦ {} // ◦ {} // ◦ {a1,b1b2} Other events get a ◦ and don’t add to history
  • 52. 49/73 Causal histories with only some relevant events Concurrent states {a1} {b1} lead to a • marked merge M A • {a1} // ◦ {a1} // • {a1,a2} B • {b1} // • {a1,b1,b2} M // ◦ {a1,b1,b2} C ◦ {} // ◦ {} // ◦ {a1,b1b2} Causally dominated state {} → {a1, b1, b2} is simply replaced
  • 53. 50/73 Causal histories with versions not immediately merged Versions can be collected and merge deferred A • {a1} // ◦ {a1} // • {a1,a2} B • {b1} // ◦ {a1},{b1} // • {a1,b1,b2} M // ◦ {a1,b1,b2} C ◦ {} // ◦ {} // ◦ {a1,b1b2} Causal histories are only merged upon version merging in a new •
  • 54. 51/73 Version vectors Parker et al 83 (1983 http://zoo.cs.yale.edu/classes/cs422/2013/bib/parker83detection.pdf)
  • 55. 52/73 Version vectors A • [1,0,0] // ◦ [1,0,0] // • [2,0,0] B • [0,1,0] // • [1,2,0] M // ◦ [1,2,0] C ◦ [0,0,0] // ◦ [0,0,0] // ◦ [1,2,0]
  • 56. 53/73 Can Causality scale? Charron-Bost 91 One entry needed per source of concurrency (1991 https://doi.org/10.1016/0020-0190(91)90055-M)
  • 57. 54/73 Scaling Causality Scaling at the edge (DVVs) Mediate interaction by DC proxies Support failover and DC switching One entry per proxy (not per client) Dynamic concurrency degree (ITCs) Creation and retirement of active entities Transparent tracking with minimal coordination Causality tracing under concurrency across services
  • 58. 55/73 Scaling Causality Dynamo like, get/put interface A ◦ get Meet? // • put Mon B ◦ get Meet? // • put Fri Ss ◦ Meet? // HH ◦ @@ Meet? // Fri // ? Conditional writes Overwrite first value Multi-Value ([1, 0] [0, 1], one entry per client!)
  • 59. 56/73 Scaling Causality Causal histories Dynamo like, get/put interface A ◦ {} // • put {} B ◦ {} // • put {} Ss ◦ {} // HH ◦ @@ {} // {s1} // {s1},{s2} St
  • 60. 57/73 Scaling Causality DVVs. Almeida et al 14 Dotted Version Vectors (2014 https://link.springer.com/chapter/10.1007/978-3-662-43352-2 6)
  • 61. 58/73 Scaling Causality Dotted Version Vectors [0, 0]s1 [0, 0]s2 S T S T
  • 62. 59/73 Scaling Causality Dotted Version Vectors Gets get all values, with compact causal context [0, 0]s1 [0, 0]s2 = [2, 0] S T S T = S T
  • 63. 60/73 Scaling Causality Dotted Version Vectors Puts can go to alternative servers Server T can get a put with context [2, 0] [0, 2]t3 [2, 0]t4 S T S T
  • 64. 61/73 Scaling Causality Dotted Version Vectors DVVs are used in the Riak Key-value store, deployed in the British NHS, BET365 and other global companies.
  • 65. 62/73 Dynamic Causality Tracking causality requires exclusive access to identities A B C id 1 2 → A B C id 1 2 To avoid preconfiguring identities, id space can be split and joined
  • 66. 63/73 Dynamic Causality ITCs. Almeida et al 08 (2008 https://link.springer.com/chapter/10.1007/978-3-540-92221-6 18)
  • 67. 64/73 Dynamic Causality Interval Tree Clocks A seed node controls the initial id space id
  • 68. 65/73 Dynamic Causality Interval Tree Clocks Registering events can use any portion above the controlled id id 1 2
  • 69. 66/73 Dynamic Causality Interval Tree Clocks Ids can be split from any available entity
  • 70. 67/73 Dynamic Causality Interval Tree Clocks . . . and be split again
  • 71. 68/73 Dynamic Causality Interval Tree Clocks Entities can register new events and become concurrent
  • 72. 69/73 Dynamic Causality Interval Tree Clocks Any two entries can merge together
  • 73. 70/73 Dynamic Causality Interval Tree Clocks . . . eventually collecting the whole id space
  • 74. 71/73 Dynamic Causality Interval Tree Clocks . . . and simplifying the encoding of events
  • 75. 72/73 Dynamic Causality Interval Tree Clocks ITCs are used in concurrency tracing and debugging, and in distributed settings within the Pivot tracing system.
  • 76. 73/73 Closing notes Causality is important because time is limited Causality is about memory of relevant events Causal histories are very simple encodings of causality VC, DVV, ITC do efficient encoding of causal histories All mechanisms are only encoding of causal histories Graphical representations allow visualization of causality, this is useful in comparing existing mechanisms and to develop novel ones.