Vector Clocks Collin J. Fidge, 1988. Timestamps in Message-Passing Systems That Preserve the Partial Order
Order of events without global clock What happens when? event message time process
A total order of events Lamport clocks 5 4 4 3 3 3 2 2 2 1 1 1 same timestamp: any (consistent) order
A total order of events Lamport clocks
A total order of events Lamport clocks Too little information: Shows only one possible interleaving of events.
A partial order of events The ”happens before” relation same process transitivity message minimal relation
A partial order of events The ”happens before” relation
A partial order of events Vector clocks A timestamp of a vector clock is a vector of integer clocks – one clock per process. • How does vector clocks work? • Can vector clocks represent the ”happens before” relation?
Vector clocks Rules �� ������������������������ [ � , � , . . . , � ] � �� ������������������������������ ������ ����������� �� ���������������������������������������� �� ������������������������� ����������������������� ����������������������������������������� ������� ���������������������������������������������� ������������������������������������ �� �����������������������������
Vector clocks Rule 4 ��� � �������������������������� � ������������������� ����� � ������������������� ������������������������ ������� transit time out of order ��� ( � [ � ] , � [ � ] + � ) �� � = � � � � [ � ] = ��� ( � [ � ] , � [ � ]) ���������
Vector clocks Example [3 ,5 ,4] [4,0,0] [3 ,4,2] [3 ,0,0] [0,0,3] [3 ,3 ,2] [0,0,2] [0,2,2] [2,0,0] [0,0,1 ] [0,1,0] [1,0,0]
Vector clocks A relation on events ��� � � ��� � � ���������������� � ��� � ������������ � ��� � � ��� � � � ��� � � � ������������������������������� � �������������������� → �������������� � � → � � ⇐ ⇒ � � � [ � ] < � � � [ � ] � �����������������������������������������������
Vector clocks Example (again) � � → � � ⇐ ⇒ � � � [ � ] < � � � [ � ] [3 ,5 ,4] [4,0,0] same [3 ,4,2] process transitivity [3 ,0,0] [0,0,3] [3 ,3 ,2] message [0,0,2] [0,2,2] [2,0,0] [0,0,1 ] [0,1,0] [1,0,0] minimal relation
Vector clocks The ”happens before” relation �������������������������������������������������������� ������������������������������������� → ����������� �� �������������������������� �� ����������������������������� �� ������������ �� ����������������
Vector clocks The ”happens before” relation ��� � ��� � ���������������� ������������ � � ������ � � → � � ����������������� � � � [ � ] < � � � [ � ] � ���������������� ����������������� �� ������������������������������ ������ ����������� �� �����������������������������
Vector clocks The ”happens before” relation ��� � � ��������������������� � � ������������������������� � �������� ������ � � → � � ����������������� � � � [ � ] < � � � [ � ] � ����������� � − � ���������������������� � � ���������� � � �������������� � ��� ( � � − � [ � ] , � � � [ � ] + � ) �� � = � � � � [ � ] = ��� ( � � − � [ � ] , � � � [ � ]) ��������� ������� � � � [ � ] < ��� ( � � − � [ � ] , � � � [ � ] + � ) ������������� �����
Vector clocks The ”happens before” relation ��� ������������� ��� � � � ��� � �������������������� � � � ��� � ������������� ������ � � � � � ��� � � � � � � ������� ��������� � � � [ � ] < � � � [ � ] � �� � = � ���� � � � [ � ] � � � � [ � ] � ������������������ �� ����������������������������� �� � � = � ��������������������������� � � � [ � ] � � � � [ � ] � ����� � � � [ � ] < � � � [ � ] � � � � [ � ] ������ � � � � � �
Vector clocks The ”happens before” relation ���� → ����� �������� ��������������������������������� ����������� ������������������������������������� � � → � � ⇐ ⇒ � � � [ � ] < � � � [ � ] ����������������� � � � [ � ] ������������������������������ ����� ���������������������������������� ��������������� �������� ������������� � � ��������������� � � �
Vector clocks Conclusion Vector clocks can describe the ”happens before” relation!
Recommend
More recommend