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

Choose a push or pull model for master and nodes #79

Open
RaasAhsan opened this issue Dec 13, 2018 · 0 comments
Open

Choose a push or pull model for master and nodes #79

RaasAhsan opened this issue Dec 13, 2018 · 0 comments
Labels
help wanted Extra attention is needed

Comments

@RaasAhsan
Copy link

RaasAhsan commented Dec 13, 2018

The master and nodes for Gemini currently operate on a master-oriented model, where nodes individually make calls to the master to exchange information. Here is a non-exhaustive list of information that will be transferred:

  • Ping/heartbeat
  • Jobs to execute
  • CPU/memory and other metrics

We may also take the other approach and choose a node-oriented model where a master initiates communication with nodes. Some points about this that I have in mind:

  • Nodes will need to run a Flask server for the masters to hit. Would have to exchange this information on node startup. This also calls for additional firewall/routing rules.
  • Unclear how multiple masters would interact with eachother and divide work
  • Will need to code retries into calls. For example, if a master makes a call to nodes when a job is submitted, if that call fails, the master will have to schedule a retry.

We can also choose to use a hybrid model, where some information is pushed to master, and some information is pushed to node.

/cc @ncatelli

@RaasAhsan RaasAhsan added the help wanted Extra attention is needed label Dec 13, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant