Skip to content

Commit

Permalink
Bugfix: validation of delta before applying them.
Browse files Browse the repository at this point in the history
Due to the nature UDP, the existence of resets and the fact that we are
gossipping to several nodes at the same time, it is possible for our
obsolete deltas to arrive.

This PR adds some validation to detect if the delta is valid, and
whether it will bring us to a better state or not.

It also removes the nodes to reset information, which was actually
taking a large amount of the MTU on large clusters.
(For 20 nodes, around 1KB)

Reset is now just expressed by sending the delta with `from_version = 0`.

Closes #129

-

Removing hidden contract

We avoid computing tombstone's Instant upon deserialization.
It was hiding a very hidden contract forcing us to deserialize mutation
in the order of their version.

With this change, we defer the computation of the instant to the
call of the apply_delta method. All of the tombstone from a delta
get the exact same `Instant`.
  • Loading branch information
fulmicoton committed Mar 4, 2024
1 parent b3f109b commit c55c883
Show file tree
Hide file tree
Showing 7 changed files with 622 additions and 369 deletions.
Loading

0 comments on commit c55c883

Please sign in to comment.