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

Fast comms (WIP) #101

Open
wants to merge 30 commits into
base: master
Choose a base branch
from
Open

Fast comms (WIP) #101

wants to merge 30 commits into from

Conversation

darrnshn
Copy link
Contributor

@darrnshn darrnshn commented Jul 4, 2016

This was a major refactor to make the comms system faster 🚀

Major Changes:

  • Renamed worker to agent and minion to worker.
  • We now use a binary protocol for all messages.
  • Extracted cpp worker to its own separate repo.
  • Requesters cannot specify job types. Batch jobs uses all job types.
  • Single address for messages. Before, we used a vector<string> for messages, but we never actually needed more than one address.
  • Heartbeats
    • Heartbeats are negotiated with a HELLO/WELCOME exchange. Before, there were 3 magic numbers for heartbeat settings per router. Now it's only 1 number: how long before a timeout. Poll rates are automatically determined from the heartbeat timeouts.
    • Heartbeats run in the same thread as the rest. Less context switches and no need for running flag.
    • Heartbeats run at the socket level, so it's somewhat transparent.
  • Routers now use CRTP to statically dispatch messages to message handlers. No more router.binds.
  • Added lots of tests. The interfaces are also more testable now.

Stuff left to do:

  • Job types for agent.
  • Add tests for heartbeating
  • Add tests for timeouts
  • Add tests for sad paths for delegator and agent
  • Simpler job scheduling
  • Add server bin
  • Remove ununsed files
  • Remove zmq_addon since we don't use it that much.
  • Use meta::apply for router poll to avoid function lookup.
  • Syntactic sugar for serialising and deserialising.

@darrnshn darrnshn added this to the 0.3 Release milestone Jul 4, 2016
Use HDF5 as output format
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 this pull request may close these issues.

1 participant