Use push style notifications for all server->agent information
Our current approach of having lots of functions that can be called at any given time via AMQP by the agents creates stampeding herd scenarios during failures and recoveries of even small amounts of agents in a reasonable scale system. The aim of this blueprint is to fundamentally revisit the pattern we use for getting information to the agents to ensure that the pace is determined by the server delivering data rather than timeouts/retries on the agent side.
Blueprint information
- Status:
- Complete
- Approver:
- Ihar Hrachyshka
- Priority:
- High
- Drafter:
- Kevin Benton
- Direction:
- Approved
- Assignee:
- Kevin Benton
- Definition:
- Approved
- Series goal:
- Accepted for pike
- Implementation:
- Implemented
- Milestone target:
- pike-2
- Started by
- Armando Migliaccio
- Completed by
- Slawek Kaplonski
Related branches
Sprints
Whiteboard
Sep-08-2016(armax): deferred to Ocata
Aug-8-2016(
Apr-4-2016(armax): to start working on dhcp only, spec to be resume. Needs decoupling from OVO
Mar-3-2106(armax): Moved to Newton. Please ensure you re-submit spec if necessary.
Feb-01-2016(armax): still going through spec review, no approver still.
Jan-24-2016(armax): this needs an 'approver' volunteer for spec/code review. The spec under review needs some love too.
Jan-21-2016(armax): needs an approver for code review; a spec is still going in progress of merging.
Gerrit topic: https:/
Addressed by: https:/
Add spec for push notification refactor
Gerrit topic: https:/
Addressed by: https:/
WIP
Addressed by: https:/
Add revision_number to standard attr for OVO
Addressed by: https:/
Add callbacks for networks and subnets in ML2
Addressed by: https:/
Add generic object AMQP notifier
Addressed by: https:/
Add generic object AMQP receiver
Addressed by: https:/
Load generic AMQP receiver in DHCP agent
Addressed by: https:/
Rollback port after failed to add it to router
Gerrit topic: https:/
Addressed by: https:/
Introduce ovo objects for security groups
Addressed by: https:/
Introduce ovo objects for ports
Addressed by: https:/
Introduce ovo objects for networks
Addressed by: https:/
Introduce ovo objects for network segments
Addressed by: https:/
[wip]: add standard attributes to qospolicy
Addressed by: https:/
Fix init method for HasStandardAttr
Gerrit topic: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Addressed by: https:/
Simplify resources module in RPC callbacks
Addressed by: https:/
[WIP]: server-side push notifications for ML2
Addressed by: https:/
Fix modify_
Addressed by: https:/
Add 'to_primitive' for MACAddress and IPNetwork
Addressed by: https:/
Get post-subnet actions out of transaction
Addressed by: https:/
Fix ML2, base db plugin update_subnet for transactions
Addressed by: https:/
Separate floating IP port creation from transaction
Addressed by: https:/
[WIP]: move fip agent gw port create out of txn
Addressed by: https:/
[WIP]: Use callbacks to create DVR floating GW port
Gerrit topic: https:/
Addressed by: https:/
Use revision to discard stale DHCP updates
Addressed by: https:/
API compare-and-swap updates based on revision_number
Gerrit topic: https:/
Addressed by: https:/
Don't create default SG in transaction
Addressed by: https:/
Don't emit SG rule AFTER events until TX closed
Addressed by: https:/
Agent-side receiver cache for ML2 OVO
Addressed by: https:/
Use push notification for security groups
Addressed by: https:/
Use push-notificates for OVSPluginAPI
Addressed by: https:/
Decompose SG RPC API DB methods
Addressed by: https:/
Fixes to allow OVO deserializion of ports/networks
Addressed by: https:/
Add missing port UPDATE event to ML2
Addressed by: https:/
Add bulk pull OVO interface
Addressed by: https:/
Add missing module-level SUBNET ref
Addressed by: https:/
Change _VALID_CLS to store obj names
Addressed by: https:/
Avoid loading network and all rels for subnet query
Addressed by: https:/
Cleanup _find_related_obj
Addressed by: https:/
Use dirname in object recursive import
Addressed by: https:/
Avoid loading network and all rels for subnet query
Addressed by: https:/
Notify L2pop driver from update_
Addressed by: https:/
[wip]: Fix trace in make_compatiable for port
Addressed by: https:/
DNM Revert "Use push-notificates for OVSPluginAPI"
Addressed by: https:/
Move retry decorator to DB methods
Addressed by: https:/
Move db methods to bottom of SG RPC class
Addressed by: https:/
Move info retrieval methods below notifier
Addressed by: https:/
Lazy load of resources in resource cache
Addressed by: https:/
Manually increment revision numbers in revision plugin
Addressed by: https:/
Add support for list querying in resource cache
Addressed by: https:/
OVO: Allow port queries based on security_group_ids
Addressed by: https:/
Add revises_on_change to Binding DB models
Addressed by: https:/
Use objects instead of SQLA deep copies in PortContext
Addressed by: https:/
Ignore duplicate record_
Addressed by: https:/
Revert "Use push notification for security groups"
Addressed by: https:/
Notify L2pop driver from update_
Gerrit topic: https:/
Addressed by: https:/
Notify L2pop driver from update_