References
counter() = integer()
dot() = {vclock_node(), {counter(), timestamp()}}
pure_dot() = {vclock_node(), counter()}
timestamp() = integer()
vclock() = [dot()]
vclock_node() = term()
| all_nodes/1 | Return the list of all nodes that have ever incremented VClock. |
| descends/2 | Return true if Va is a direct descendant of Vb, else false -- remember, a vclock is its own descendant! |
| descends_dot/2 | does the given vclock() descend from the given dot(). |
| dominates/2 | true if A strictly dominates B. |
| equal/2 | Compares two VClocks for equality. |
| fresh/0 | Create a brand new vclock. |
| fresh/2 | |
| get_counter/2 | Get the counter value in VClock set from Node. |
| get_dot/2 | Get the entry dot() for vclock_node() from vclock(). |
| get_timestamp/2 | Get the timestamp value in a VClock set from Node. |
| increment/2 | Increment VClock at Node. |
| increment/3 | Increment VClock at Node. |
| merge/1 | Combine all VClocks in the input list into their least possible common descendant. |
| prune/3 | Possibly shrink the size of a vclock, depending on current age and size. |
| pure_dot/1 | in some cases the dot without timestamp data is needed. |
| timestamp/0 | Return a timestamp for a vector clock. |
| valid_dot/1 | is the given argument a valid dot, or entry?. |
all_nodes(VClock::vclock()) -> [vclock_node()]
Return the list of all nodes that have ever incremented VClock.
Return true if Va is a direct descendant of Vb, else false -- remember, a vclock is its own descendant!
does the given vclock() descend from the given dot(). The
dot() can be any vclock entry returned from
get_entry/2. returns true if the vclock() has an entry for
the actor in the dot(), and that the counter for that entry is
at least that of the given dot(). False otherwise. Call with a
valid entry or you'll get an error.
See also: descends/2, dominates/2, get_entry/3.
true if A strictly dominates B. Note: ignores
timestamps. In Riak it is possible to have vclocks that are
identical except for timestamps. When two vclocks descend each
other, but are not equal, they are concurrent. See source comment
for more details. (Actually you can have indentical clocks
including timestamps, that represent different events, but let's
not go there.)
Compares two VClocks for equality.
fresh() -> vclock()
Create a brand new vclock.
fresh(Node::vclock_node(), Count::counter()) -> vclock()
get_counter(Node::vclock_node(), VClock::vclock()) -> counter()
Get the counter value in VClock set from Node.
get_dot(Node::vclock_node(), VClock::vclock()) -> {ok, dot()} | undefined
Get the entry dot() for vclock_node() from vclock().
get_timestamp(Node::vclock_node(), VClock::vclock()) -> timestamp() | undefined
Get the timestamp value in a VClock set from Node.
increment(Node::vclock_node(), VClock::vclock()) -> vclock()
Increment VClock at Node.
increment(Node::vclock_node(), IncTs::timestamp(), VClock::vclock()) -> vclock()
Increment VClock at Node.
Combine all VClocks in the input list into their least possible common descendant.
Possibly shrink the size of a vclock, depending on current age and size.
pure_dot(X1::dot()) -> pure_dot()
in some cases the dot without timestamp data is needed.
timestamp() -> timestamp()
Return a timestamp for a vector clock
valid_dot(X1::dot()) -> boolean()
is the given argument a valid dot, or entry?
Generated by EDoc