Skip to content

Instantly share code, notes, and snippets.

@phedkvist
Last active February 27, 2021 12:47
Show Gist options
  • Save phedkvist/e20265b8b2480dd203d00a38cfe5d03c to your computer and use it in GitHub Desktop.
Save phedkvist/e20265b8b2480dd203d00a38cfe5d03c to your computer and use it in GitHub Desktop.
G-counter
payload integer[n] P
initial [0,0,...,0]
update increment()
let g = myId()
P[g] := P[g] + 1
query value() : integer v
let v = Σi P[i]
compare (X, Y) : boolean b
let b = (∀i ∈ [0, n - 1] : X.P[i] ≤ Y.P[i])
merge (X, Y) : payload Z
let ∀i ∈ [0, n - 1] : Z.P[i] = max(X.P[i], Y.P[i])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment