Skip to content

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

@RaasAhsan

Description

@RaasAhsan

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions