LUC.DVVSet
1.0.0.2
See the version list below for details.
dotnet add package LUC.DVVSet --version 1.0.0.2
NuGet\Install-Package LUC.DVVSet -Version 1.0.0.2
<PackageReference Include="LUC.DVVSet" Version="1.0.0.2" />
paket add LUC.DVVSet --version 1.0.0.2
#r "nuget: LUC.DVVSet, 1.0.0.2"
// Install LUC.DVVSet as a Cake Addin #addin nuget:?package=LUC.DVVSet&version=1.0.0.2 // Install LUC.DVVSet as a Cake Tool #tool nuget:?package=LUC.DVVSet&version=1.0.0.2
We are presenting the compact version of the original Dotted Version Vectors(DVV), which we call Dotted Version Vector Sets (DVVSet). Like its predecessor, DVVSet still accurately describes causality between related or conflicting values (values that reflect concurrent updates and that must be all kept until a future reconciliation supersedes them), but now with a smaller representation, very similar to Version Vectors in size.
Lets assume the scenario of a Distributed Key-Value Store (Ex: Riak, Cassandra, etc), where we have clients, servers and we can write ( PUT ) and read ( GET ) values. We also want to track the causality information of these values, so that causally descendant values replace older values and causally concurrent values are all kept (for further reconciliation).
We can use DVVSet to keep the values and their causal history together, with support for multiple conflicting values (siblings). One DVVSet has 1 value (a single sibling) if there are no conflicts. Otherwise, it stores all siblings and their relevant causal information in a single DVVSet. Thus, this data structure encapsulates the tracking, maintaining and reasoning about the values' causality.
This is adaptation from Erlang to C#
Original code: https://github.com/ricardobcl/Dotted-Version-Vectors
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net471 is compatible. net472 was computed. net48 was computed. net481 was computed. |
-
.NETFramework 4.7.1
- Microsoft.Bcl.HashCode (>= 1.1.1)
- Newtonsoft.Json (>= 13.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Added method StringToClock. Now we have a self-made serialization and deserialization of Clock values.