Vector clock

Vector clock

Vector Clocks is an algorithm for generating a partial ordering of events in a distributed system and detecting causality violations. Just as in Lamport timestamps, interprocess messages contain the state of the sending process's logical clock. Vector clock of a system of "N" processes is an array of "N" logical clocks, one per process, a local copy of which is kept in each process with the following rules for clock updates:
* Initially all clocks are zero.
* Each time a process experiences an internal event, it increments its own logical clock in the vector by one.
* Each time a process prepares to send a message, it increments its own logical clock in the vector by one and then sends its entire vector along with the message being sent.
* Each time a process receives a message, it increments its own logical clock in the vector by one and updates each element in its vector by taking the maximum of the value in its own vector clock and the value in the vector in the received message (for every element).

The Vector clocks algorithm was developed by Friedemann Mattern in 1988. [Citation
last1=Mattern | first1=F.
contribution=Virtual Time and Global States of Distributed Systems
editor-last=Cosnard | editor-first=M. | title=Proc. Workshop on Parallel and Distributed Algorithms
place=Chateau de Bonas, France
date=Oct. 1988
publisher=Elsevier
year=1989
pages=215-226
]

Partial ordering property

Vector clocks allow for the partial causal ordering of events. Defining the following:
* VC(x) denote the vector clock of event x
* VC(x) < VC(y) iff forall z [VC(x)_z le VC(y)_z] and exists z' [ VC(x)_{z'} < VC(y)_{z'} ]
** In English: VC(x) is less than VC(y) if and only if VC(x) [z] is less than or equal to VC(y) [z] for all indices z and there exists an index z' such that VC(x) [z'] is strictly less than VC(y) [z'] .
* x -> y denote event x happened before event y. It's defined as: if x -> y, then VC(x) < VC(y)

Properties:

* If VC(a) < VC(b), then a -> b
* Antisymmetry: if VC(a) < VC(b), then ¬ VC(b) < VC(a)
* Transitivity: if VC(a) < VC(b) and VC(b) < VC(c), then VC(a) < VC(c) or if a -> b and b -> c, then a -> c

ee also

*Lamport timestamps

References


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Clock synchronization — is a problem from computer science and engineering which deals with the idea that internal clocks of several computers may differ. Even when initially set accurately, real clocks will differ after some amount of time due to clock drift, caused by …   Wikipedia

  • Clock gating — is a power saving technique used in many synchronous circuits Description Clock gating is a popular technique used in many synchronous circuits for reducing dynamic power dissipation. Clock gating saves power by adding more logic to a circuit to… …   Wikipedia

  • Vector-06C — Infobox computer Photo = Type = Home computer Released = 1987 Discontinued = Processor = KR580VM80A @3 MHz OS = Tape loader or CP/M Memory = 64 KiBVector 06C ( ru. Вектор 06Ц) is a home computer that was designed and mass produced in USSR in the… …   Wikipedia

  • vector analysis — the branch of calculus that deals with vectors and processes involving vectors. * * * ▪ mathematics Introduction       a branch of mathematics that deals with quantities that have both magnitude and direction. Some physical and geometric… …   Universalium

  • Clock rate — Clocking redirects here. For tampering with vehicle odometers, see Odometer fraud. The clock rate is the rate in cycles per second (measured in hertz) or the frequency of the clock in any synchronous circuit, such as a central processing unit… …   Wikipedia

  • Projection clock — A projection clock (also called ceiling clock) is an analog or digital clock equipped with a projector that creates an enlarged image of the clock face on any suitable projection screen, most often the ceiling. They are not very complex, and can… …   Wikipedia

  • Logical clock — A logical clock is a mechanism for capturing chronological and causal relationships in a distributed system.Logical clock algorithms of note are: * Lamport timestamps, which are monotonically increasing software counters * Vector clocks, that… …   Wikipedia

  • Serial Vector Format — (SVF) is a vector exchange format, designed to enable transfer of boundary scan vectors between tools. SVF is expressing test patterns that represent the stimulus, expected response, and mask data for IEEE 1149.1 based tests.The SVF file is… …   Wikipedia

  • Column (data store) — A column consists of a (unique) name, a value, and a timestamp. A column of a distributed data store is a NoSQL object of the lowest level in a keyspace. It is a tuple (a key value pair) consisting of three elements:[1] Unique name: Used to… …   Wikipedia

  • Operational transformation — Operation Transformation redirects here. For the cross media event, see Operation Transformation (TV series). Operational transformation (OT) is a technology for supporting a range of collaboration functionalities in advanced groupware systems.… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”