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

Basic Clustering #38

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Basic Clustering #38

wants to merge 2 commits into from

Conversation

anupdhml
Copy link
Contributor

Rendered

A very early sketch for adding basic clustering to Tremor.

@anupdhml anupdhml marked this pull request as draft December 18, 2020 14:40
@anupdhml anupdhml changed the title Basic clustering Basic Clustering Dec 18, 2020
```sh
# assuming this command is run on host1 and the 3 coordinator nodes are on
# host1, host2, host3 (host1 can be left out here if desired)
tremor server run --coordinator --peers "host1:8139,host2:8139,host3:8139"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add discovery mechanism rather than explicit host:port pairs ( a simple static lookup discovery mechanism is a perfectly valid discovery implementation mechanism but we may also require integration with consul, etcd etc... for some deployments

tremor server run --coordinator --peers "host1:8139,host2:8139,host3:8139" --cluster-port 4242
```

When started without these flags, the server process simulates the behavior of
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets revisit this and see if overloading server run makes sense verses adding tremor cluster run ... later. Maintaining standalone mode of operation is well captured and important for some use cases.

Signed-off-by: Anup Dhamala <[email protected]>
tremor server run --coordinator --peers "host1:8139,host2:8139,host3:8139"

# assuming this command is run on host4 (all 3 coordinator nodes have to be specified)
tremor server run --worker --coordinators "host1:8139,host2:8139,host3:8139"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For simplicity, and for small clusters, mostly for testing, wouldn't it make sense to allow a node to be coordinator and worker at the same time. This way we can form a simple cluster with 3 nodes where either 1 or all three are coordinators.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, it would, that would also remove a extra mainline for a non clustered version (it'd effectively be a cluster of 1)

workload submissions, or changes to the tremor [repository and registry
state](https://docs.tremor.rs/operations/configuration/#introduction)) and
ensure that all nodes eventually apply the changes -- anytime the [tremor
api](https://docs.tremor.rs/api/) used to submit changes from a node, the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
api](https://docs.tremor.rs/api/) used to submit changes from a node, the
api](https://docs.tremor.rs/api/) is used to submit changes from a node, the

@darach darach added enhancement New feature or request open-review This RFC is undergoing open / public review with intent to proceed labels Jan 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request open-review This RFC is undergoing open / public review with intent to proceed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants