|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectvoldemort.versioning.VectorClock
public class VectorClock
A vector of the number of writes mastered by each node. The vector is stored sparely, since, in general, writes will be mastered by only one node. This means implicitly all the versions are at zero, but we only actually store those greater than zero.
| Constructor Summary | |
|---|---|
VectorClock()
Construct an empty VectorClock |
|
VectorClock(byte[] bytes)
Takes the bytes of a VectorClock and creates a java object from them. |
|
VectorClock(byte[] bytes,
int offset)
Read the vector clock from the given bytes starting from a particular offset |
|
VectorClock(java.util.List<ClockEntry> versions,
long timestamp)
Create a VectorClock with the given version and timestamp |
|
VectorClock(long timestamp)
|
|
| Method Summary | |
|---|---|
VectorClock |
clone()
|
static Occured |
compare(VectorClock v1,
VectorClock v2)
Is this Reflexive, AntiSymetic, and Transitive? Compare two VectorClocks, the outcomes will be one of the following: -- Clock 1 is BEFORE clock 2 if there exists an i such that c1(i) <= c(2) and there does not exist a j such that c1(j) > c2(j). |
Occured |
compare(Version v)
Return whether or not the given version preceeded this one, succeeded it, or is concurrant with it |
boolean |
equals(java.lang.Object object)
|
java.util.List<ClockEntry> |
getEntries()
|
long |
getMaxVersion()
|
long |
getTimestamp()
|
int |
hashCode()
|
VectorClock |
incremented(int nodeId,
long time)
Get new vector clock based on this clock but incremented on index nodeId |
void |
incrementVersion(int node,
long time)
Increment the version info associated with the given node |
VectorClock |
merge(VectorClock clock)
|
int |
sizeInBytes()
|
byte[] |
toBytes()
|
java.lang.String |
toString()
|
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public VectorClock()
public VectorClock(long timestamp)
public VectorClock(java.util.List<ClockEntry> versions,
long timestamp)
versions - The version to prepopulatetimestamp - The timestamp to prepopulatepublic VectorClock(byte[] bytes)
bytes - The serialized bytes of the VectorClock
public VectorClock(byte[] bytes,
int offset)
bytes - The bytes to read fromoffset - The offset to start reading from| Method Detail |
|---|
public byte[] toBytes()
public int sizeInBytes()
public void incrementVersion(int node,
long time)
node - The node
public VectorClock incremented(int nodeId,
long time)
nodeId - The id of the node to increment
public VectorClock clone()
clone in class java.lang.Objectpublic boolean equals(java.lang.Object object)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic java.lang.String toString()
toString in class java.lang.Objectpublic long getMaxVersion()
public VectorClock merge(VectorClock clock)
public Occured compare(Version v)
Version
compare in interface Versionv - The other version
public static Occured compare(VectorClock v1,
VectorClock v2)
v1 - The first VectorClockv2 - The second VectorClockpublic long getTimestamp()
public java.util.List<ClockEntry> getEntries()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||