# Vector Clock Algorithm Assignment Help

• Generalize logical clocks to offer non-causality information along with causality information.
• Implement along with values drawn from the partially ordered set rather than an entirely ordered set.
• Assign the value V( e ) in order to every computation event e in an execution so that the a ® b if and only if V( a ) Less than V ( b ).

## Vector Timestamps Algorithm:

• Each pi keeps an n-vector Vi, initially all 0's
• Entry j in Vi is pi 's estimate associated with how many steps pj has taken
• Every msg pi sends is timestamped along with current value associated with Vi
• At each and every step, increment Vi[ i ] through 1
• When finding a message along with vector timestamp T, update Vi 's components j ≠ i so that Vi[ j ] = max( T[ j ],Vi[ j ])
• If a is an event at pi, after that allocate V( a ) to be value associated with Vi at end of a.

### Manipulating Vector Timestamps:

Let V and W be two n-vectors of integers.

• Equality: V = W iff V[ i ] = W[ i ] for all i.
• Example: ( 3, 2, 4 ) = ( 3, 2, 4 )
• Less than or equal: V ≤ W iff V[ i ] ≤ W[ i ] for all i.
• Example: ( 2, 2, 3 ) ≤ ( 3, 2, 4 ) and ( 3, 2, 4 ) ≤ ( 3, 2, 4 )
• Less than: V less than W iff V Less than equal to W but V W
• Example: ( 2, 2, 3 ) Less than ( 3, 2, 4 )
• Incomparable: V || W iff ! ( V ≤ W ) and ! ( W ≤ V ).
• Example: ( 3, 2, 4 ) || ( 4, 1, 4 )
• The partial order on n-vectors simply described is actually different then lexicographic ordering.
• Lexicographic ordering is really a complete order on vectors.
• Consider ( 3, 2, 4 ) versus ( 4, 1, 4 ) within the 2 approaches.

### Vector Timestamps Example: V(g) = ( 0, 0, 1 ) and V(b) = ( 2, 0, 0 ), which are incomparable. Compare with logical clocks L(g) = 1 and L(b) = 2.