Skip to content

gyanaggarwal/pure_ops_crdt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pure_ops_crdt

Pure Operation-Based Replicated Data Types

This is an implementation based on a paper "Pure Operation-Based Replicated Data Types" by Carlos Baquero, Paulo Sergio Almeida and Ali Shoker. This paper has been uploaded in docs folder here.

This is a complete implementation of Middleware along with the following CRDTs.

PNCounter - commutative CRDT

GCounter - commutative CRDT

GSet - commutative CRDT

2PSet - commutative CRDT

BoundedCounter - commutative CRDT

MVRegister - non-commutative CRDT

AWSet - non-commutative CRDT

RWSet - non-commutative CRDT

EWFlag - non-commutative CRDT

DWFlag - non-commutative CRDT

This library implements "at least once delivery" semantics with reliable causal broadcast. It can handle duplicate messages, lost messages and out-of-order messages. This feature converts "at least once delivery" semantics to "exactly once delivery" semantics that is required for operation-based CRDTs.

It also has feature to dynamiclly add a new replica or remove an existing replica. A replica cluster has a cluster_id. A new replica will be added if has the same cluster_id.

About

Pure Operation-Based Replicated Data Types

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages