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

Distribute information about who's leader for a given partition #1907

Closed
Tracked by #1651
tillrohrmann opened this issue Aug 28, 2024 · 1 comment
Closed
Tracked by #1651

Comments

@tillrohrmann
Copy link
Contributor

tillrohrmann commented Aug 28, 2024

For the ingress to communicate with the leading partition processor of a given partition, we need to propagate leadership changes between the Restate nodes. There are different ways to implement this functionality:

Gossiping leadership changes

The leadership information could be transient information that gets propagated/aggregated via gossiping leadership changes to other Restate nodes. Every node could gossip about the set of known leaders it is running and those the node has heard about from other nodes. The information could be (PartitionId, EpochNumber, GenerationalNodeId). Using the EpochNumber nodes can discern what's the latest information.

Until we implement a gossip based cluster state protocol, we could piggy-back the current ClusterState on the heartbeat requests that are being sent by the cluster controller.

Communicate leaders via the PartitionTable

Alternatively, we could propagate the leadership information as part of the PartitionTable. The cluster controller could update this metadata whenever it learns about newly running leaders for a given partition. The downside is that updating this information will entail a write to the MetadataStore.

@tillrohrmann
Copy link
Contributor Author

Fixed via #2166. The current solution is to retrieve the leader information from the SchedulingPlan stored in the metadata store.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant