Package voldemort.versioning

Classes for operating on vector clocks and dealing with distributed state.


Interface Summary
InconsistencyResolver<T> A method for resolving inconsistent object values into a single value.
ObjectMerger<T> A method for merging two objects
Version An interface that allows us to determine if a given version happened before or after another version.

Class Summary
ArbitraryInconsistencyResolver<T> An inconsistency resolution strategy that always prefers the first of the two objects.
ChainedResolver<T> Apply the given inconsistency resolvers in order until there are 1 or fewer items left.
ClockEntry Deprecated.
FailingInconsistencyResolver<T> An inconsistency resolver that does not attempt to resolve inconsistencies, but instead just throws an exception if one should occur.
MergingInconsistencyResolver<T> A strategy based on merging the objects in the list
TimeBasedInconsistencyResolver<T> Resolve inconsistencies based on timestamp in the vector clock
VectorClock A vector of the number of writes mastered by each node.
VectorClockInconsistencyResolver<T> An inconsistency resolver that uses the object VectorClocks leaving only a set of concurrent versions remaining.
Versioned<T> A wrapper for an object that adds a Version.

Enum Summary
Occurred The result of comparing two times--either t1 is BEFORE t2, t1 is AFTER t2, or t1 happens CONCURRENTLY to t2.

Exception Summary
InconsistentDataException Thrown when multiple inconsistent values are found and no resolution strategy resolves the problem
ObsoleteVersionException An exception that indicates an attempt by the user to overwrite a newer value for a given key with an older value for the same key.

Package voldemort.versioning Description

Classes for operating on vector clocks and dealing with distributed state.

Jay Kreps, Roshan Sumbaly, Alex Feinberg, Bhupesh Bansal, Lei Gao, Chinmay Soman, Vinoth Chandar, Zhongjie Wu