# Functions
AllAnomaliesImplying yields a set of anomalies which would imply any of those anomalies.
AllImpliedAnomalies yields a set of anomalies implied by those.
AnomaliesProhibitedBy takes a collection of consistency models, and returns a set of anomalies which can't be present if all of those models are to hold.
Append implements Mop.
Check receives analyzer and a history, returns a map of {graph, explainer, cycles, sccs, anomalies}.
Combine composes multiple analyzers.
DigraphUnion takes the union of n graphs, merging edges with union.
FilterFailedHistory ...
FilterOkHistory ...
FilterOkOrInfoHistory ...
FilterOutNemesisHistory ...
FindCycle receives a graph and a scc, finds a short cycle in that component.
FindCycleStartingWith ...
FindCycleWith ...
FriendlyBoundary takes a set of anomalies, and yields not and alsoNot where not is the weakest set of consistency models invalidated by the given anomaly, and alsoNot is the remaining set of stronger models.
IntersectionRel returns the intersection of res1 and res2.
MapToDirectedGraph turns a sequence of [node, successors] map into a directed graph.
MonotonicKeyGraph analyzes monotonic key.
MonotonicKeyOrder find dependencies of a process.
NewBFSPath ...
NewCircle returns a Circle from a Vertex slice.
NewCombineExplainer builds a CombinedExplainer according to a explainer array.
NewDirectedGraph returns a empty DirectedGraph.
NewOptInt creates an optional.Int from a int.
NewVerticesFromOp ...
ParseHistory parse history from elle's row text.
ParseOp parse operation from elle's row text TODO: parse process and time field (they are optional).
ProcessGraph analyzes process.
ProcessOrder find dependencies of a process.
Read ...
RealtimeGraph analyzes real-time.
Set export set.
WriteCycles ..
# Constants
AnonymousMagicNumber is a magic number, means that we don't know the process id of a history event.
Rel enums.
Rel enums.
Rel enums.
MonotonicDepend ...
Note: currently we don't support MonotonicKey.
MopType enums.
MopType enums.
MopType enums.
MopType enums.
MopType enums.
NemesisProcessMagicNumber is a magic number to stand for nemesis related event on a history.
OpType enums.
OpType enums.
OpType enums.
OpType enums.
OpType enums.
Rel enums.
ProcessDepend ...
Rel enums.
RealtimeDepend ...
Rel enums.
RWDepend ...
Rel enums.
Rel enums.
Rel enums.
WRDepend ...
Rel enums.
WWDepend ...
# Variables
Models sees https://jepsen.io/consistency for sources.
# Structs
BFSPath ...
CheckResult records the check result.
Circle ...
CombinedExplainer struct.
CycleExplainer provides the step-by-step explanation of the relationships between pairs of operations.
CycleExplainerResult impls Anomaly.
CycleTrace records a cycle path.
DirectedGraph is a directed graph type.
Edge is a intermediate representation of edge on DirectedGraph.
IntOptional is an optional int.
KVEntity struct.
MonotonicKeyExplainer ..
Mop interface.
Op is operation.
OpBinding binds the operation with Txx name.
ProcessExplainer ...
ProcessResult ...
RealtimeExplainer is Realtime order explainer.
RealtimeExplainResult records a real time explain result.
SCC indexes all vertices of a strongly connected component.
Step saves a explain result of one step of a cycle.
Vertex is a vertex on the directed graph.
# Interfaces
Anomaly unifies all kinds of Anomalies, like G1a, G1b, dirty update etc.
DataExplainer ...
ExplainResult is an interface, contains rwExplainerResult, wwExplainerResult wr ExplainerResult etc.
ICycleExplainer is an interface.
MopValueType ...
# Type aliases
Analyzer is a function which takes a history and returns a {:graph, :explainer, :anomalies} map; e.g.
Anomalies groups anomalies by there names.
ConsistencyModelName defines the consistency model name.
CyclePredicate is a predication on a CycleTrace.
DependType records the depend type of a relation.
History contains operations.
MopType ...
OpType ...
PathType type aliases Op.
Rel stands for relation in dependencies.
Rels type aliases []Rel.
RelSet type aliases []Rel.
SameKeyOpsByLength ...
Vertices type aliases []Vertex.