Netflix / dynomite

A generic dynamo implementation for different k-v storage engines
Apache License 2.0
4.2k stars 534 forks source link

[WIP] Read repairs for primary keys #637

Closed smukil closed 5 years ago

smukil commented 5 years ago

This patch adds read repairs for primary keys. It specifically works only with the following commands at the moment:

Repiars need to be enabled under a flag in the YAML configuration. It is enabled only if 'repairs_enabled: true' is specified.

This current implementation of repairs is not supported and returns the values in a custom format: 1) E/N (exists or not-exists) 2) Value itself 3) Timestamp of value

This custom format will be removed in future patches to standardize on the regular Redis wire protocol.

Currently the timestamp is generated on the server side. Client side timestamp support will be added in future patches.

TODO:-

ipapapa commented 5 years ago

We probably also need to update the README.md with the new property on the YAML. I am not sure if there are also entries on the wiki.

ipapapa commented 5 years ago

We need to add in the PR description a link on how the read repairs are implemented e.g. a design document or some similar documentation.

smukil commented 5 years ago

Abandoning this. New PR here: https://github.com/Netflix/dynomite/pull/653