Uploaded image for project: 'SAFe Program'
  1. SAFe Program
  2. SP-1725

MCCS Refactor / reimplement resource management

Details

    • Obs Mgt & Controls
    • 1.6
    • 1
    • 5
    • Team_MCCS
    • Sprint 5
    • Hide

      SP-1725 was a feature that aimed to refactor the resource management function of MCCS as it was identified in PI10 that there were areas which did not align with future plans. The original plan was to complete the initial implementation of the resource managers through SP-1645.

      Crossover. However through the hardware model and state machine introduced in v0.11 of the tango_base_classes many of the tasks of SP-1725 were to be implemented, refactored and generally addressed again as part of SP-1717.Therefore SP-1725 refocused its scope towards being a feature to understand the impact of refactoring MCCS to use v0.11 of the tango_base_classes, capturing 'mop up work' then implementing any imediately required action in order to make a post adoption release to CAR.

      In PI12, SP-1934 will pick up remaining clean up activities from the recommendations caputured through this features findings.

      Useful Links
      *************
      Controller.Release implementation (mccs-407)

      Controller.Allocate with new architecture (mccs-406)
      This work was completed as part of the component manager refactor required by the update to the latest version of ska-tango-base (MCCS-400 / MCCS-401). The Allocate() command now calls the controller's component manager's allocate() method, which uses a ControllerResourceManager to manage resource contention, health and readiness. Successfully allocated resources are assigned to subarrays.

      • Reimplement MccsSubarray's resource management as a single resource manager class capable of handling multiple resource types (MCCS-646)
        This work was done as part of the component manager refactor required by the update to the latest version of ska-tango-base (MCCS-400 / MCCS-401). ControllerComponentManager outsources its resource management to a ControllerResourceManager, which makes use of some more generic resource manager classes. The most basic generic resource manager class is called _ResourceManager. See its documentation for evidence that it is capable of handling multiple resource types. (https://gitlab.com/ska-telescope/ska-low-mccs/-/blob/main/src/ska_low_mccs/controller/controller_resource_manager.py#L36)

      Move all resource contention management to MccsController's resource manager class (MCCS-645)
      This work was done as part of the component manager refactor required by the update to the latest version of ska-tango-base (MCCS-400 / MCCS-401). To see that this is complete, note

      The tickets outcomes listed above highlight the scale of the crossover we have encoutered between SP-1717, SP-1716 & SP-1725. Particularly the work done on MCCS-645 which crosses over and refactors work done in parallel in SP-1645!

      The Confluence page linked below captures the initial reactions of the software developers reviewing the impact of the v0.11 refactor following it's merge into https://gitlab.com/ska-telescope/ska-low-mccs/ main via mccs-400: https://confluence.skatelescope.org/display/SE/Post+MCCS-400+merge+support+and+training

      Show
      SP-1725 was a feature that aimed to refactor the resource management function of MCCS as it was identified in PI10 that there were areas which did not align with future plans. The original plan was to complete the initial implementation of the resource managers through SP-1645 . Crossover. However through the hardware model and state machine introduced in v0.11 of the tango_base_classes many of the tasks of SP-1725 were to be implemented, refactored and generally addressed again as part of SP-1717 .Therefore SP-1725 refocused its scope towards being a feature to understand the impact of refactoring MCCS to use v0.11 of the tango_base_classes, capturing 'mop up work' then implementing any imediately required action in order to make a post adoption release to CAR. In PI12, SP-1934 will pick up remaining clean up activities from the recommendations caputured through this features findings. Useful Links ************* Controller.Release implementation (mccs-407) controller device ReleaseCommand: https://gitlab.com/ska-telescope/ska-low-mccs/-/blob/main/src/ska_low_mccs/controller/controller_device.py#L433 controller component manager deallocate_all method: https://gitlab.com/ska-telescope/ska-low-mccs/-/blob/main/src/ska_low_mccs/controller/controller_component_manager.py#L511 controller resource manager module: https://gitlab.com/ska-telescope/ska-low-mccs/-/blob/main/src/ska_low_mccs/controller/controller_resource_manager.py Controller.Allocate with new architecture (mccs-406) This work was completed as part of the component manager refactor required by the update to the latest version of ska-tango-base (MCCS-400 / MCCS-401). The Allocate() command now calls the controller's component manager's allocate() method, which uses a ControllerResourceManager to manage resource contention, health and readiness. Successfully allocated resources are assigned to subarrays. controller device AllocateCommand: https://gitlab.com/ska-telescope/ska-low-mccs/-/blob/main/src/ska_low_mccs/controller/controller_device.py#L314 controller component manager allocate method: https://gitlab.com/ska-telescope/ska-low-mccs/-/blob/main/src/ska_low_mccs/controller/controller_component_manager.py#L471 controller resource manager module: https://gitlab.com/ska-telescope/ska-low-mccs/-/blob/main/src/ska_low_mccs/controller/controller_resource_manager.py Reimplement MccsSubarray's resource management as a single resource manager class capable of handling multiple resource types (MCCS-646) This work was done as part of the component manager refactor required by the update to the latest version of ska-tango-base (MCCS-400 / MCCS-401). ControllerComponentManager outsources its resource management to a ControllerResourceManager, which makes use of some more generic resource manager classes. The most basic generic resource manager class is called _ResourceManager. See its documentation for evidence that it is capable of handling multiple resource types. ( https://gitlab.com/ska-telescope/ska-low-mccs/-/blob/main/src/ska_low_mccs/controller/controller_resource_manager.py#L36 ) Move all resource contention management to MccsController's resource manager class (MCCS-645) This work was done as part of the component manager refactor required by the update to the latest version of ska-tango-base (MCCS-400 / MCCS-401). To see that this is complete, note SubarrayComponentManager.assign() etc methods do not contain any notion of resource contention, nor even that other subarrays exist. They are simply told what resources they have, and accept this on face value. ( https://gitlab.com/ska-telescope/ska-low-mccs/-/blob/main/src/ska_low_mccs/subarray/subarray_component_manager.py#L227 ) ControllerComponentManager outsources its resource management to a ControllerResourceManager, which makes use of some more generic resource manager classes. Resource contention is handled in the _ResourceManager base class. Note specifically the _validate_allocation helper method, which raises an exception if an allocation includes a resource that is already allocated to some other allocatee. ( https://gitlab.com/ska-telescope/ska-low-mccs/-/blob/main/src/ska_low_mccs/controller/controller_resource_manager.py#L122 ) The tickets outcomes listed above highlight the scale of the crossover we have encoutered between SP-1717 , SP-1716 & SP-1725 . Particularly the work done on MCCS-645 which crosses over and refactors work done in parallel in SP-1645 ! The Confluence page linked below captures the initial reactions of the software developers reviewing the impact of the v0.11 refactor following it's merge into https://gitlab.com/ska-telescope/ska-low-mccs/ main via mccs-400: https://confluence.skatelescope.org/display/SE/Post+MCCS-400+merge+support+and+training
    • 11.6
    • Stories Completed, Outcomes Reviewed, NFRS met, Satisfies Acceptance Criteria, Accepted by FO

    Description

      Refactor / reimplement resource management

      Attachments

        Issue Links

          Structure

            Activity

              People

                s.vrcic Vrcic, Sonja
                v.mohile Mohile, Vivek
                Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Feature Progress

                  Story Point Burn-up: (100.00%)

                  Feature Estimate: 1.6

                  IssuesStory Points
                  To Do00.0
                  In Progress   00.0
                  Complete819.0
                  Total819.0

                  Dates

                    Created:
                    Updated:
                    Resolved:

                    Structure Helper Panel