From 915badc7d13bcdb1692d6fd6b27190a9aaceb71d Mon Sep 17 00:00:00 2001 From: Taylor Peoples Date: Wed, 2 Mar 2016 07:57:25 +0100 Subject: [PATCH] Cluster model objects wrapper Currently a model of the cluster is constructed every time a strategy is executed, which will not scale in production or in larger environments. If Watcher intends to be used by larger envirionments it needs a more robust way to construct and maintain a model of the cluster. An in-memory cache of this model can be built up and kept fresh via notifications from services of interest in addition to periodic syncing logic. Co-Authored-By: Vincent FRANCOISE Change-Id: I338b1169049c80638c5229648c6f26ed39a9b622 --- ...uster_objects_wrapper_get_latest_model.txt | 61 +++ ...m_cluster_objects_wrapper_notification.txt | 46 ++ ...e_diagram_cluster_objects_wrapper_sync.txt | 41 ++ ...uster_objects_wrapper_get_latest_model.png | Bin 0 -> 76695 bytes ...m_cluster_objects_wrapper_notification.png | Bin 0 -> 47574 bytes ...e_diagram_cluster_objects_wrapper_sync.png | Bin 0 -> 46306 bytes .../cluster-model-objects-wrapper.rst | 402 ++++++++++++++++++ 7 files changed, 550 insertions(+) create mode 100644 doc/source/image_src/plantuml/sequence_diagram_cluster_objects_wrapper_get_latest_model.txt create mode 100644 doc/source/image_src/plantuml/sequence_diagram_cluster_objects_wrapper_notification.txt create mode 100644 doc/source/image_src/plantuml/sequence_diagram_cluster_objects_wrapper_sync.txt create mode 100644 doc/source/images/sequence_diagram_cluster_objects_wrapper_get_latest_model.png create mode 100644 doc/source/images/sequence_diagram_cluster_objects_wrapper_notification.png create mode 100644 doc/source/images/sequence_diagram_cluster_objects_wrapper_sync.png create mode 100644 specs/newton/approved/cluster-model-objects-wrapper.rst diff --git a/doc/source/image_src/plantuml/sequence_diagram_cluster_objects_wrapper_get_latest_model.txt b/doc/source/image_src/plantuml/sequence_diagram_cluster_objects_wrapper_get_latest_model.txt new file mode 100644 index 0000000..a4f7aa2 --- /dev/null +++ b/doc/source/image_src/plantuml/sequence_diagram_cluster_objects_wrapper_get_latest_model.txt @@ -0,0 +1,61 @@ +@startuml +skinparam maxMessageSize 100 + +== Initialization == + +actor "Administrator" + +"Administrator" -> "Decision Engine" : Start all services +create "Background Task Scheduler" +"Decision Engine" -> "Background Task Scheduler" : Start + +create "Collector Manager" +"Background Task Scheduler" -> "Collector Manager"\ +: Sync all models +create "Cluster Model Collector Loader" +"Collector Manager" -> "Cluster Model Collector Loader"\ +: Get list of cluster data model collector instances +"Cluster Model Collector Loader" -> "Collector Manager"\ +: List of cluster data model collector instances + +loop for every available cluster data model collector (including Nova) + "Background Task Scheduler" -> "Background Task Scheduler"\ + : Create initial synchronization job for (e.g. Nova) + create "Nova Cluster Data Model Collector" + "Background Task Scheduler" -[#blue]> "Nova Cluster Data Model Collector"\ + : [async] trigger initial synchronization job + activate "Nova Cluster Data Model Collector" + "Nova Cluster Data Model Collector" -> "Nova API"\ + : Fetch needed data to build the cluster data model + "Nova API" -> "Nova Cluster Data Model Collector" : Needed data + "Nova Cluster Data Model Collector" -> "Nova Cluster Data Model Collector"\ + : Build an in-memory cluster data model + deactivate "Nova Cluster Data Model Collector" +end + +== When executing a strategy == + +create "Strategy" +"Administrator" -> "Strategy" : Trigger audit which then executes a strategy + +"Strategy" -> "Collector Manager" : Get the latest 'nova' cluster data model +activate "Collector Manager" + +"Collector Manager" -> "Cluster Model Collector Loader"\ +: Find the plugin named 'nova' +"Cluster Model Collector Loader" -> "Collector Manager"\ +: Nova Cluster Data Model Collector + +"Collector Manager" -> "Nova Cluster Data Model Collector"\ +: Get the latest Nova cluster data model +activate "Nova Cluster Data Model Collector" +"Nova Cluster Data Model Collector" -> "Collector Manager"\ +: Copy of in-memory model +deactivate "Nova Cluster Data Model Collector" + +"Collector Manager" -> "Strategy" : Nova in-memory cluster data model +deactivate "Collector Manager" + +]o<- "Strategy" : Done + +@enduml diff --git a/doc/source/image_src/plantuml/sequence_diagram_cluster_objects_wrapper_notification.txt b/doc/source/image_src/plantuml/sequence_diagram_cluster_objects_wrapper_notification.txt new file mode 100644 index 0000000..80ec5ec --- /dev/null +++ b/doc/source/image_src/plantuml/sequence_diagram_cluster_objects_wrapper_notification.txt @@ -0,0 +1,46 @@ +@startuml +skinparam maxMessageSize 100 + +actor "Administrator" + +== Initialization == + +"Administrator" -> "Decision Engine" : Start +create "Event Notification Endpoint" +"Decision Engine" -> "Event Notification Endpoint" : Initialize + +create "Notification Handler Manager" +"Event Notification Endpoint" -> "Notification Handler Manager"\ +: Initialize + +create "Nova Notification Handler" +"Notification Handler Manager" -> "Nova Notification Handler"\ +: Initialize + +== Upon receiving an event == + +[-> "Event Notification Endpoint" : Incoming Nova Notification + +"Event Notification Endpoint" -[#blue]> "Notification Handler Manager"\ +: [async] dispatch based on the event type (e.g. 'compute.*') + +hnote over "Event Notification Endpoint" : Idle + +"Notification Handler Manager" -> "Nova Notification Handler"\ +: handle notification + +activate "Nova Notification Handler" +"Nova Notification Handler" -> "Nova Notification Handler"\ +: parse notification +"Nova Notification Handler" -> "Nova Cluster Data Model"\ +: update the in-memory model given the parsed notification +activate "Nova Cluster Data Model" +loop visit all resources + "Nova Cluster Data Model" -> "Resource"\ + : visit given the parsed notification (visitor pattern) +end +]o<-- "Nova Cluster Data Model" : Done +deactivate "Nova Cluster Data Model" + +deactivate "Nova Notification Handler" +@enduml diff --git a/doc/source/image_src/plantuml/sequence_diagram_cluster_objects_wrapper_sync.txt b/doc/source/image_src/plantuml/sequence_diagram_cluster_objects_wrapper_sync.txt new file mode 100644 index 0000000..e233489 --- /dev/null +++ b/doc/source/image_src/plantuml/sequence_diagram_cluster_objects_wrapper_sync.txt @@ -0,0 +1,41 @@ +@startuml +skinparam maxMessageSize 100 + +actor "Administrator" + +== Initialization == + +"Administrator" -> "Decision Engine" : Start all services +"Decision Engine" -> "Background Task Scheduler" : Start + +activate "Background Task Scheduler" +"Background Task Scheduler" -> "Cluster Model Collector Loader"\ +: List available cluster data models +"Cluster Model Collector Loader" -> "Background Task Scheduler"\ +: list of BaseClusterModelCollector instances + +loop for every available cluster data model collector + "Background Task Scheduler" -> "Background Task Scheduler"\ + : add periodic synchronization job + create "Jobs Pool" + "Background Task Scheduler" -> "Jobs Pool" : Create sync job +end +deactivate "Background Task Scheduler" + +hnote over "Background Task Scheduler" : Idle + +== Job workflow == + +"Background Task Scheduler" -> "Jobs Pool" : Trigger periodic job +"Jobs Pool" -> "Nova Cluster Data Model Collector" : synchronize() + +activate "Nova Cluster Data Model Collector" + "Nova Cluster Data Model Collector" -> "Nova API"\ + : Fetch needed data to build the cluster data model + "Nova API" -> "Nova Cluster Data Model Collector" : Needed data + "Nova Cluster Data Model Collector" -> "Nova Cluster Data Model Collector"\ + : Build an in-memory cluster data model + ]o<-- "Nova Cluster Data Model Collector" : Done +deactivate "Nova Cluster Data Model Collector" + +@enduml diff --git a/doc/source/images/sequence_diagram_cluster_objects_wrapper_get_latest_model.png b/doc/source/images/sequence_diagram_cluster_objects_wrapper_get_latest_model.png new file mode 100644 index 0000000000000000000000000000000000000000..0257465d1a68c6d0a547c4bbc6fd00afafe84936 GIT binary patch literal 76695 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

YmTZ`+ zSSd{WJnXuEZ*O}87?$S;og@3@U9ie0Nky>pD!~rb0$m|_r~JRK7kjw{847}71i@; z{xc{_&`8jP>#W!&3yXtns!0@M5-`IR?ENIX7dGiQo(KYG119F2dqH~lhO6`grf6RQ zn;A%&nrKzed9o1rau@?*bZDp+tW~`DOUYG28`OM1?bg9tk5eyoLMoP&5I|$pVBKh8 zv46DO6jo`!()3<`Q}o~!{#0o943$o`#gvFvk!KZ=~H@PP|$Z*E_x;^rx)IsuNhqx6ZwqWa#((!zBOvxYX*_h`g-TJv_g7c?0SUCU3H47A2jc#{ZDvf%8lCzS8FJCs@XQj>B(W} z>mfx%ZTq0*ySF|KJz3fT0Re*%2k%FUEzB@*3@nTB%H)XQHu`f%3Gb?_2c}l*s%i_{ z6ZoZyA`&p`y}H`bJn^V(#)CZJ;qXR$>_hXCno2R;LtuS#d7lArbF|f@Z0fbC_ zQ5y(#Dk62A{UE~$GARTYtlTLId})EE0K7@!KW z8NVkUWO?j{p4dx6Cr5saOIP0l!JdxOii;b@QiCXj0nQD}c}Q5o;C7BjU%FggHsgm+ z2YG^4+9B}neR8nJZiN`Gav@h?{39IStb#nPrq3EaK%1(xG4E|ezLOA#*_a)Rq24n7 z-J_EzsB9q2*)+~I;D^kkv0uA}-osQ^O!-a&61R&-IL7nG=Xb-RUooImYVM=cIRCWi zDJjG|T5+%E1!If8^Kig!^Nq17!xS+?0u|1vR0UJo) zw@io!mc$#RjZegYZM!IOQ@+Tq{l2)y2=8O|3d1G)KBHwu^CFAZ2NhL^!tS5*C`g^& zCsyzZw^GTG1_T-GY_Sp4z`{KIx!QM(uosOKpX^FJcmLU+G7=BUX#OQQ+Tk|ui~$84 z?|_%9npUqaa$Xs)CH5VG(pCWeUy$Azqg8cDX2Ig7)?|+0Nz0Ujr-#%9U>R&*l;|pm z%7%Z|Djyetx&tX4X%x8RA<7saaPVRS(C7MAI@dt$@3_+*JR(pVw?dqlcFw`Bvqxfc z51xhVfem6E(M#t}u~$;k;b(7-9sCi*{AVd;X#ZX`hvxQ>KJm!FrJhYw${W|O8fccN HTZjA)ERK+Q literal 0 HcmV?d00001 diff --git a/doc/source/images/sequence_diagram_cluster_objects_wrapper_notification.png b/doc/source/images/sequence_diagram_cluster_objects_wrapper_notification.png new file mode 100644 index 0000000000000000000000000000000000000000..162dc0f23e3270349a9b138f8bc0442656f416b6 GIT binary patch literal 47574 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%0AT{Wi1gIkS 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 literal 0 HcmV?d00001 diff --git a/specs/newton/approved/cluster-model-objects-wrapper.rst b/specs/newton/approved/cluster-model-objects-wrapper.rst new file mode 100644 index 0000000..9f74452 --- /dev/null +++ b/specs/newton/approved/cluster-model-objects-wrapper.rst @@ -0,0 +1,402 @@ +.. + This work is licensed under a Creative Commons Attribution 3.0 Unported + License. + + http://creativecommons.org/licenses/by/3.0/legalcode + +============================= +Cluster Model Objects Wrapper +============================= + +https://blueprints.launchpad.net/watcher/+spec/cluster-model-objects-wrapper + +Currently a model of the cluster is constructed every time a strategy is +executed, which will not scale in production or in larger environments. If +Watcher intends to be used by larger environments it needs a more robust way +to construct and maintain a model of the cluster. An in-memory cache of this +model can be built up and kept fresh via notifications from services of +interest in addition to periodic syncing logic. + + +Problem description +=================== + +As discussed above, Watcher currently constructs a model of the cluster every +time a strategy is executed via the ``get_latest_cluster_data_model()`` +method. As it stands today Watcher only has one model collector defined +(``NovaClusterModelCollector``). This method then fetches all hypervisors from +Nova using the nova API and then for each hypervisor fetches all servers on +that hypervisor. For each of these hypervisors and servers, a Watcher model +object is created to represent the entity from the JSON response of the API. +These objects are placed into a collection (the cluster data model) which is +then passed to the strategy's ``execute()`` method. The strategy then uses +this model to make certain decisions. + +Unfortunately, in a production environment of a decent size, constructing the +cluster model like this will not scale. Consider an environment with hundreds +of compute nodes and tens of thousands of servers. If Watcher needs to +construct the representation of this every time a user wants to run an audit, +running an audit will potentially be very slow. Also consider a busy +environment where a lot of audits are being requested in short succession - +Watcher will need to construct this most recent cluster model via API requests +to each service of interest, which is a lot of strain on the overall system +for almost no gain, assuming the environment has hardly changed between each +audit request. + +It would be ideal that a strategy can use an in-memory cache of the cluster +model in order to make informed decisions immediately without the need for +Watcher to query every service for its most recent representation. This will +be especially important when continuous audits are implemented, which will +require decisions will be made periodically and often. + +Use Cases +---------- + +The primary use case of this is addressing problems of scale. Strategies can +be executed much quicker due to minimal delay in constructing the cluster +model, which will result in faster audits delivered to the end users of +Watcher. It will also reduce load on the overall OpenStack deployment due to +the elimination of redundant API requests. + +For the developers of Watcher, this will create an easy way to fetch and +consume the current cluster model. + +Project Priority +----------------- + +High + +Proposed change +=============== + +Watcher should provide a number of cluster model collectors (reusing the +``BaseClusterModelCollector`` class) that are responsible for maintaining an +in-memory cache of their associated cluster. For example, the +``NovaClusterModelCollector`` class would maintain a cache of all hypervisors +and servers on each hypervisor. In the future this may expand to say a +``CinderClusterModelCollector`` class which would maintain a cache of all +storage providers and block devices (e.g., volumes). + +These cluster model collectors would be managed by the existing +``CollectorManager`` class today, which will need to be updated to maintain +references to instantiations of each collector class instead of instantiating +a new one on every call to ``get_cluster_model_collector()``. Methods should +also be added to allow fetching the list of available collectors and fetching +specific collectors. + +Each implementation of the ``BaseClusterModelCollector`` would continue to +provide a method analogous to the current ``get_latest_cluster_data_model``, +but instead of fetching the model from the service itself it would fetch it +from its internal cache. + +Here below is a sequence diagram depicting the workflow to be used in order to +retrieve all the cluster data model: + +.. image:: ../../../doc/source/images/sequence_diagram_cluster_objects_wrapper_get_latest_model.png + :width: 140% + +Each implementation of the ``BaseClusterModelCollector`` should begin +populating its in-memory cache on instantiation, preferably without blocking +other code execution for quick service stand-up. The implementations should +also define periodic tasks that are responsible for (preferably asynchronously +through the use of threads) syncing the cache with the service. For example, +for ``NovaClusterModelCollector``, this periodic task would be responsible +for making an API request to Nova to fetch all hypervisors and servers. From +the response of that API request, the cache would be updated as appropriate. +The rate at which these sync up tasks are ran should be configurable, but a +sensible default is likely in the every 60 minute range. + +Here below is a sequence diagram depicting the workflow to periodically +synchronize all the cluster data models: + +.. image:: ../../../doc/source/images/sequence_diagram_cluster_objects_wrapper_sync.png + :width: 140% + +If the periodic sync up tasks are the only method of updating the cache, +clearly the cache would quickly become stale. In order to combat this, a +notification handler will need to be put in place that asynchronously handles +notifications from different services that come in over the AMQP message bus. +The notification handler should be able to configure what notifications it is +interested in so that it can ignore any other notifications on the bus. The +notification handler would determine what type of notification it is handling, +then based on that it will spawn a thread that calls a method within specific +model collectors that are configured to be interested in notifications of said +type. The notification (including the payload) would be passed to the method, +which would be responsible for updating its collector's cache appropriately. +It is important the notification handler can deal with notifications +asynchronously via threads so that it does not get bogged down when the rate +of notifications is high. For example, in the case of Nova, the notification +handler would be able to receive notifications such as: + + * 'compute.instance.create.end' for instances being created + * 'compute.instance.delete.end' for instances being deleted + * 'compute.instance.live_migration._post.end' for instances being migrated + * ... and dozens more + +Here below is a sequence diagram depicting the workflow to update cluster data +models after receiving a notification: + +.. image:: ../../../doc/source/images/sequence_diagram_cluster_objects_wrapper_notification.png + :width: 140% + +Note that a single notification will not prompt the entire cluster model to be +refreshed - only the relevant items in the cache will be refreshed. + +The notification handler should preferably have a way for exploiters of +Watcher to somehow be able to handle other notifications via some sort of +plugin mechanism. + +The idea is that the notification handler will allow the collectors to keep +their cache predominantly up to date. If the notification handler fails to +receive any notifications sent by the services over the AMQP message bus for +whatever reason, then the periodic sync up task will serve to correct any +staleness of the cache. This boils down to the following idea: Watcher can +live with eventual consistency. + +Alternatives +------------ + +No caching at all could be done in the collectors, as is today. As discussed +at length above, this would only be acceptable for the smallest of cloud +environments. + +Instead of an in-memory cache, the cached data could be stored in Watcher +database tables. This would ultimately mean duplication of potentially a lot +of data which is a very big negative. + +Data model impact +----------------- + +This should not affect the database as the data is being kept within in-memory +caches. + +REST API impact +--------------- + +None, unless we intend on surfacing Watcher's current representation of the +cluster, but that is likely outside the scope of this. + +Security impact +--------------- + +None + +Notifications impact +-------------------- + +Watcher will not be generating any new notifications, but it will be consuming +many more. + +Other end user impact +--------------------- + +None besides better performance and the understanding of what eventual +consistency means. + +Performance Impact +------------------ + +This is described in the "Proposed change" section, but as an overview: + + * Improved performance for environments of scale since the cluster model + does not need to be reconstructed as part of every audit request. + + * Periodic tasks to sync up cluster model data can potentially be very slow. + Therefore they should be done asynchronously preferably. + + * Notification handler will need to handle a significant number of + notifications coming from the AMQP message bus. Spawning threads to the + cluster model collectors to do the actual cache updates should allow + control to quickly return to the handler to handle the next notification. + +Other deployer impact +--------------------- + +Several config options for the rate at which the periodic sync up tasks will +need to be added. The intention is that the default values should work well +in real deployments. + +This change will take immediate effect after it is merged - it will be part of +Watcher's core architecture. + +Developer impact +---------------- + +Strategies may need to have some refactoring done to handle the new cluster +data models. + + +Implementation +============== + +Assignee(s) +----------- + +Primary assignee: + Vincent Françoise + +Other contributors: + Taylor Peoples + +Work Items +---------- + +Part 1 +^^^^^^ + +- Enhance the ``BaseClusterModelCollector`` to allow the creation of plugins: + + + Make ``BaseClusterModelCollector`` inherit from the ``Loadable`` abstract + class. + +- Implement a ``ClusterModelCollectorLoader`` which extends the + ``DefaultLoader`` class so we can dynamically load user-defined cluster data + model collectors. + +- Make ``CollectorManager`` capable of loading entry points/plugins that will + be the various cluster model collectors (i.e. ``NovaClusterModelCollector`` + only for now but also ``CinderClusterModelCollector`` later on). + + + Add a ``loader`` attribute that will be a ``ClusterModelCollectorLoader`` + instance. + + Adapt all existing strategies to now explicit the fact that we use the + `Nova`_ cluster model collector. + + Add a ``get_collectors()`` method that returns a mapping of all the entry + point names with their associated ``BaseClusterModelCollector`` instances . + +Part 2 +^^^^^^ + +- Enhance the ``BaseClusterModelCollector`` to allow an in-memory model + synchronization: + + + Make it inherit from ``oslo_service.service.Singleton`` so we only maintain + a single model per type. + + Add a ``cluster_data_model`` abstract property which shall have to return + a ``ModelRoot`` instance which will have to be thread-safe. + + Modify the ``get_latest_cluster_data_model()`` abstract method to now be a + plain method that will have to return a deep copy of its in-memory + ``cluster_data_model``. + + Add a ``synchronize()`` abstract method that will be responsible for + fetching the full representation of the given cluster data model. This new + cluster data model should be a drop-in replacement. Note: this + ``synchronize()`` method should be executed asynchronously. + + Implement the ``cluster_data_model`` property for + ``NovaClusterModelCollector``. + + Implement the ``synchronize()`` method for ``NovaClusterModelCollector``. + +- Implement a ``BackgroundTaskScheduler`` background scheduling service using + `apscheduler`_ that will be responsible for periodically triggering a job per + cluster data model in order to synchronize them. This scheduling service + should be launched as part of the ``Watcher Decision Engine`` daemon. + + + It should inherit from both ``oslo_service.service.ServiceBase`` and + ``apscheduler.schedulers.background.BackgroundScheduler``. + + Make use of ``oslo_service.service.Services`` in order to run both + ``BackgroundTaskScheduler`` and the main decision engine service within + the same process. + + The period will have to be configurable via the configuration file. + + A set of basic configuration options about this scheduling service should + also be exposed. + +- Update the ``Watcher Decision Engine`` command to now launch the + +Part 3 +^^^^^^ + +- Create a ``NotificationHandlerManager`` class that will be responsible for + dispatching any incoming notification to update the model using the + observer pattern. + + + Define a ``register()`` method that will be used to register all the + notification handlers. + + Implement a ``dispatch()`` method that will be responsible to call + the right notification handler using an internal registry based on + their associated publisher ID. This method should execute notification + handlers asynchronously. + +- Create a ``NotificationHandler`` abstract class that will be responsible + for processing any given notification to update the model. + + + Implement a ``handle()`` method that will be responsible to call + the right registered handler method based on the content of the + notification + + Define a ``get_publisher_id()`` class method that will be used to + associate the ``NotificationHandler`` to a given publisher ( + e.g. '^compute.\*'). + + Implement an ``NotificationParser`` abstract class that will be responsible + for parsing incoming raw notifications. + + * Create a ``parse()`` abstract method that will be responsible for + converting the incoming raw notification into some Watcher notification + objects which shall be different for all event type. + + + Using the visitor pattern, explore the in-memory model and apply the + associated change wherever needed: + + Implement a ``NovaNotificationHandler`` class extending the + ``NotificationHandler`` base class: + + * Define handler methods for all the notifications defined by + `Nova`_ (see this `list of notifications`_). + * Use the ``event_type`` attribute of the Nova notifications as the main + dispatching criterion. + * Register it against the ``NotificationHandlerManager``. + * Add a ``model_collector`` property that will be return the right + ``BaseClusterModelCollector`` singleton. + +- Enhance the ``BaseClusterModelCollector`` to allow the collection and + processing of notifications in order to maintain the consistency of the + in-memory model over time: + + + Add a ``notification_handler`` abstract property to + ``BaseClusterModelCollector`` which shall have to be overridden to return + a ``NotificationHandler`` instance. + + Make the ``notification_handler`` property of ``NovaClusterModelCollector`` + return a ``NovaNotificationHandler`` instance. + +- Make ``CollectorManager`` able to find all the notification handlers: + + + Add a ``get_notification_handlers()`` class method to ``CollectorManager`` + so that it returns a list of all the ``NotificationHandler`` instances + via + +- Implement an ``EventsNotificationEndpoint`` class that will be responsible + for subscribing to a given notification topic in order to collect and format + them: + + + Make ``CollectorManager`` able to find all the notification handlers via + ``get_collectors()`` and their associated ``notification_handler``. + +.. _Nova: http://docs.openstack.org/developer/nova/ +.. _list of notifications: https://github.com/openstack/nova/blob/master/nova/rpc.py#L222-L336 +.. _apscheduler: https://github.com/agronholm/apscheduler + +Dependencies +============ + +None + +Testing +======= + +Existing tempest tests should provide basic coverage. The bulk of the changes +will affect larger environments. If those cannot be obtained for testing, +some sort of simulation and analysis of the performance needs to be done. + + +Documentation Impact +==================== + +Documentation for the new configuration options will be needed. The notion of +all of this data being cached by Watcher in memory will also need to be +documented. + +References +========== + +None + +History +======= + +None