Services heartbeat with ZooKeeper
Today the heartbeat information of Nova services/nodes is maintained in the DB, while each service updates the corresponding record in the Service table periodically (by default -- every 10 seconds), specifying the timestamp of the last update. This mechanism is highly inefficient and does not scale. E.g., maintaining the heartbeat information for 1,000 nodes/services would require 100 DB updates per second (just for the heartbeat).
A much more lightweight, scalable and reliable heartbeat mechanism can be implemented using ZooKeeper (which on its own can be also used for other purposes, to further enhance scalability and resiliency of Nova).
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Low
- Drafter:
- Alex Glikson
- Direction:
- Needs approval
- Assignee:
- Yun Mao
- Definition:
- Approved
- Series goal:
- Accepted for grizzly
- Implementation:
- Implemented
- Milestone target:
- 2013.1
- Started by
- Alex Glikson
- Completed by
- Yun Mao
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Add pluggable ServiceGroup monitoring APIs
Addressed by: https:/
Set node_availabili
Addressed by: https:/
Implement ZooKeeper driver for ServiceGroup API.