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

Add provision command to bootstrap metadata store and write initial NodesConfiguration #2409

Open
Tracked by #2408
tillrohrmann opened this issue Dec 12, 2024 · 1 comment · May be fixed by #2452
Open
Tracked by #2408

Add provision command to bootstrap metadata store and write initial NodesConfiguration #2409

tillrohrmann opened this issue Dec 12, 2024 · 1 comment · May be fixed by #2452
Assignees

Comments

@tillrohrmann
Copy link
Contributor

tillrohrmann commented Dec 12, 2024

restatectl cluster provision --address <node-address> signals this node to bootstrap the metadata store if it is running an embedded metadata store and writing an initial NodesConfiguration, PartitionTable and LogsConfiguration with the appropriate cluster configuration. It is the user's responsibility to retry this command if it fails and to never invoke for different nodes. If the user does it, then he might end up with multiple clusters.

@tillrohrmann
Copy link
Contributor Author

This issue depends on #2411 because we need to have a server running on which we can receive the provision command.

tillrohrmann added a commit to tillrohrmann/restate that referenced this issue Dec 20, 2024
After starting the metdata store service and the grpc server, the node will
try to initialize itself by joining an existing cluster or provisioning the
a new cluster. Either of the two actions will return the NodeId of the node.
Moreover, the initialization procedure makes sure that the latest metadata
is fetched from the metadata store.

The cluster provisioning will ensure that all relevant metadata has been written
to the metadata store. This includes the initial NodesConfiguration, a PartitionTable
that includes the number of partitions and an empty Logs that contains the default
log provider configuration.

This fixes restatedev#2409.
tillrohrmann added a commit to tillrohrmann/restate that referenced this issue Dec 20, 2024
After starting the metdata store service and the grpc server, the node will
try to initialize itself by joining an existing cluster or provisioning the
a new cluster. Either of the two actions will return the NodeId of the node.
Moreover, the initialization procedure makes sure that the latest metadata
is fetched from the metadata store.

The cluster provisioning will ensure that all relevant metadata has been written
to the metadata store. This includes the initial NodesConfiguration, a PartitionTable
that includes the number of partitions and an empty Logs that contains the default
log provider configuration.

This fixes restatedev#2409.
@tillrohrmann tillrohrmann linked a pull request Dec 20, 2024 that will close this issue
tillrohrmann added a commit to tillrohrmann/restate that referenced this issue Dec 23, 2024
After starting the metdata store service and the grpc server, the node will
try to initialize itself by joining an existing cluster or provisioning the
a new cluster. Either of the two actions will return the NodeId of the node.
Moreover, the initialization procedure makes sure that the latest metadata
is fetched from the metadata store.

The cluster provisioning will ensure that all relevant metadata has been written
to the metadata store. This includes the initial NodesConfiguration, a PartitionTable
that includes the number of partitions and an empty Logs that contains the default
log provider configuration.

This fixes restatedev#2409.
tillrohrmann added a commit to tillrohrmann/restate that referenced this issue Dec 23, 2024
After starting the metdata store service and the grpc server, the node will
try to initialize itself by joining an existing cluster or provisioning the
a new cluster. Either of the two actions will return the NodeId of the node.
Moreover, the initialization procedure makes sure that the latest metadata
is fetched from the metadata store.

The cluster provisioning will ensure that all relevant metadata has been written
to the metadata store. This includes the initial NodesConfiguration, a PartitionTable
that includes the number of partitions and an empty Logs that contains the default
log provider configuration.

This fixes restatedev#2409.
tillrohrmann added a commit to tillrohrmann/restate that referenced this issue Dec 24, 2024
After starting the metdata store service and the grpc server, the node will
try to initialize itself by joining an existing cluster or provisioning the
a new cluster. Either of the two actions will return the NodeId of the node.
Moreover, the initialization procedure makes sure that the latest metadata
is fetched from the metadata store.

The cluster provisioning will ensure that all relevant metadata has been written
to the metadata store. This includes the initial NodesConfiguration, a PartitionTable
that includes the number of partitions and an empty Logs that contains the default
log provider configuration.

This fixes restatedev#2409.
tillrohrmann added a commit to tillrohrmann/restate that referenced this issue Dec 24, 2024
After starting the metdata store service and the grpc server, the node will
try to initialize itself by joining an existing cluster. Additionally each node
exposes an provision cluster grpc call with which it is possible to provision
a cluster (writing the initial NodesConfiguration, PartitionTable and Logs).
Nodes can only join after the cluster is provisioned.

This fixes restatedev#2409.
tillrohrmann added a commit to tillrohrmann/restate that referenced this issue Dec 24, 2024
After starting the metdata store service and the grpc server, the node will
try to initialize itself by joining an existing cluster. Additionally each node
exposes an provision cluster grpc call with which it is possible to provision
a cluster (writing the initial NodesConfiguration, PartitionTable and Logs).
Nodes can only join after the cluster is provisioned.

This fixes restatedev#2409.
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

Successfully merging a pull request may close this issue.

1 participant