Distributed rpc messaging using ZeroMQ

Registered by Zhongyue Luo

This blueprint has been superseded. See the newer blueprint "ZeroMQ Based RPC Driver" for updated plans.

Currently, the messaging between components goes through a queue server. Even though each component polls to a queue of its topic, there are cases when the target host of a message retrieved from a component is not theirs and puts it back in the queue. In the worst case a message in a production deployment could be wandering around components of which is not its destination. Even though this would be a rare case, there is always a possibility for high latency.

In order to deliver messages efficiently, the messaging should be handed to its exact target. ZeroMQ seems promising for implementing a distributed messaging system for Nova. Some of the issues of implementation are architecture, failover, serialization, and monitoring.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Zhongyue Luo
Direction:
Needs approval
Assignee:
Sina Web Service Dev
Definition:
Superseded
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Vish Ishaya

Related branches

Sprints

Whiteboard

There was already a blueprint for Essex and an actively maintained implementation seeking merge into Folsom (it missed the Essex merge window). The current driver is fully distributed and brokerless, including for fanout messages. See: https://blueprints.launchpad.net/nova/+spec/zeromq-rpc-driver

The other blueprint is disingenuous to the actual implementation as the implementation exceeded the goals of the blueprint.
-- ewindisch

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.