4fc1abf91f
Previously, a pattern of periodic tasks was created where nodes, and in many cases, all nodes not actively locked nor those in maintenance state, were pulled in by a periodic task. These periodic tasks would then create tasks which generated additional database queries in order to populate the task object. With the task object populated, the driver would then evaluate if the driver in question was for the the driver interface in question and *then* evaluate if work had to be performed. However, that field containing a pointer to if work needed to be performed as often already queried from the database on the very initial query to generate the list of nodes to evaluate. In essence, we've moved this up in the sequence so we evaluate that field in question prior to creating the task, potentially across every conductor, depending on the query, and ultimately which drivers are enabled. This saves potentially saves hundreds of thousands of needless database queries on a medium size deployment per single day, depending on which drivers and driver interfaces are in use. Change-Id: I409e87de2808d442d39e4d0ae6e995668230cbba
9 lines
338 B
YAML
9 lines
338 B
YAML
---
|
|
fixes:
|
|
- |
|
|
Fixes the pattern of execution for periodic tasks such that the majority
|
|
of drivers now evaluate *if* work needs to be performed in advance of
|
|
creating a node task. Depending on the individual driver query pattern,
|
|
this prevents excess database queries from being triggered with every
|
|
task execution.
|