cylc-uiserver icon indicating copy to clipboard operation
cylc-uiserver copied to clipboard

offline: runtime information

Open oliver-sanders opened this issue 1 year ago • 0 comments

A task's [runtime] information is present in the schema, however, it is currently only provided by a running scheduler. This means that we cannot retrieve this information in the UI if the scheduler is not running.

In order to serve this information when the scheduler is not running, we will need to load the workflow configuration at the UIS. There are other bits of configuration-derived information that we may require in the UI, for example static graph visualisation also requires this.

Loading the configuration is easy, however, can be resource hungry as loading the configuration creates a lot of runtime objects for validation purposes so may take a while and increase memory usage. We should be cautious of configuration loading for this reason and consider the implications of loading large configurations on loaded servers:

  • Because the configuration can take a while to load, we should do this in a separate process (not thread) in order to avoid blocking the UIS.
  • We should probably retain this configuration in memory for a period of time as further, similar requests are likely to follow.
  • We should take a look at the largest configurations to get an idea of memory usage. If it's bad, we may want to look at optimisations where possible (e.g. not constructing runtime objects unless needed or not performing validation routines for this operation)

oliver-sanders avatar May 31 '23 11:05 oliver-sanders