Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement cluster mode #367

Open
danielealbano opened this issue Apr 23, 2023 · 0 comments
Open

Implement cluster mode #367

danielealbano opened this issue Apr 23, 2023 · 0 comments
Labels
enhancement New feature or request
Milestone

Comments

@danielealbano
Copy link
Owner

danielealbano commented Apr 23, 2023

Implement a mechanism to allow multiple instances of cachegrand to work in a cluster.

The initial implementation should aim to a simple primary/secondary instance where all the operations are carried out on the primary instance and replicated to the secondary.

The replication should allow different guarantee levels configurable via the config file:

  • don't wait for ack
  • wait for ack but don't wait for the write
  • wait for the data written to the backend

The initial sync mechanism can be implemented using the same logic implemented via the snapshotting although it's a bit easier as it's not necessary to keep track of the old values, if a value change menwhile a cluster node is added the new node can simply get the new value.

The protocol can be UDP based and be message oriented, to avoid packet loss we can have a number of ad-hoc fields in the header of the packet to identify the sequence, if a multi-packet message which segment it is, etc..

@danielealbano danielealbano added the enhancement New feature or request label Apr 23, 2023
@danielealbano danielealbano added this to the v0.3 milestone Apr 23, 2023
@danielealbano danielealbano modified the milestones: v0.3, v0.5 May 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant