Skip to content

Implement everything needed for replication #53

Open
@maxux

Description

@maxux

Summary

In order to have a proper first external replication support, some feature still needs to be implemented:

  • Improve SCAN with more than one response
  • Improve SCAN to support key which could be deleted
  • Implement a command to get binary key from any key
  • Add an admin command which can do SET with specified timestamp

Details

  • To make the SCAN more efficient, returning multiple values in a row seems obvious. The implementation will returns as much as possible key in a fixed amount of time, to not disturb other clients.
  • If we do a SCAN from a key which was updated recently, in order to walk over the database, we could miss lot of data. Assume a key is overwritten, doing a SCAN from that key will ends with No more data since it's the last in the index entry. A better approach is giving a client a binary key which contains enough data to resume the walk from an exact point and not a variable position based on key name.
  • If we want to do a SCAN from any key (eg: in the middle of the set), we need to know the argument to give to SCAN to start from that key. A command which returns this id is needed.
  • Since we want to add keys from another database (for replication) the timestamp should match the original timestamp, we need a way to specify the timestamp when doing a SET, only available to administrator right.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions