
Move Rocky specs from 'approved' to 'implemented': RPC collector, graph fast-failover, k8s datasource Change-Id: Ic530a6c6bbc5b0e1a12b00b672bce7b5ca67623e
2.6 KiB
2.6 KiB
Vitrage-Collector on demand
https://blueprints.launchpad.net/vitrage/+spec/rpc-collector
A simpler implementation of Vitrage high availability, collector service should meet these new requirements:
- collector should be active-active.
- Dependency between the collector and graph services should be removed.
- vitrage-graph should be able to request updates from the collector when needed.
Problem description
The current implementation, where vitrage collector and vitrage graph are always restarted simultaneously, is not desired, but is due to the lack of a better triggering event for get_all. In addition message bus may overload occasionaly due to this behaviour, when vitrage-graph is down and does not consume the messages.
Proposed change
Collector receives synchronous RPC and retrieves a list of all the events.
- vitrage-collector implementation:
-
- Remove timers for get_all and get_changes
- get_all and get_changes can be called by RPC
- get_all and get_changes receive a list parameter datasource_names.
- Will return all the entities from all the specified data-sources
- Will open a thread to write all the events to the Persistor message queue in the background.
- Remove dependency between the collector and graph services (.service files)
- vitrage-graph implementation:
-
- Should manage the RPC calls to get_all and get changes.
- Add appropriate timers calling get_all and get_changes by RPC
- List of events should be processed using an event coordinator (before TwoPrirityQueue)
- A snapshot should be taken after each get_all once the events have been processed. So the majority of events do not need to be replayed
Alternatives
None
Data model impact
None
REST API impact
None
Versioning impact
None
Other end user impact
None
Deployer impact
vitrage-collector could be restarted individually from vitrage-graph
Developer impact
None
Horizon impact
None
Implementation
Assignee(s)
- Primary assignee:
-
idan-hefetz
- Other contributors:
-
None
Work Items
None
Dependencies
None
Testing
New behaviour is already covered by existing tempest
Documentation Impact
None
References
None