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