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

Refactor Taranta Devices to take advantage of React Redux selective rendering

Change Owns to Parent OfsSet start and due date...
    XporterXMLWordPrintable

Details

    • True
    • Obs Mgt & Controls
    • Hide

      The new architecture promises large improvements in execution time and memory uses when dashboards with many widgets tango devices used with the Devices application having intense traffic of data are used.

      The new architecture resolves a current bug that leads to memory leaks that can be experienced with dashboards containing a dozen of widgets that are updated frequently for a couple of minutes.

      (Benefits after taking into account the descoping that occurred during PI Planning and consistent with current acceptance criteria. )

      Value is expected to come from:

      • reduction of technical debt (at least for the Devices sub-app) based on:
        • the new architecture taking advantage of React native ways to handle propagation of changes;
        • a better test coverage of the store (with actions, accessors and modifiers of the new store being better tested)
        • demonstration that the new architecture works and can be used as a basis for refactoring Dashboard as well
        • better documentation;
      • an enhanced Devices sub-app that could support users interested in inspecting devices that have many attributes that change very frequently. This will happen thanks to the performance enhancements that were obtained by the POC and are expected to apply here as well, within some degree of approximation.
      Show
      The new architecture promises large improvements in execution time and memory uses when dashboards with many widgets  tango devices used with the Devices application having intense traffic of data are used. The new architecture resolves a current bug that leads to memory leaks that can be experienced with dashboards containing a dozen of widgets that are updated frequently for a couple of minutes. (Benefits after taking into account the descoping that occurred during PI Planning and consistent with current acceptance criteria. ) Value is expected to come from: reduction of technical debt (at least for the Devices sub-app) based on: the new architecture taking advantage of React native ways to handle propagation of changes; a better test coverage of the store (with actions, accessors and modifiers of the new store being better tested) demonstration that the new architecture works and can be used as a basis for refactoring Dashboard as well better documentation; an enhanced Devices sub-app that could support users interested in inspecting devices that have many attributes that change very frequently. This will happen thanks to the performance enhancements that were obtained by the POC and are expected to apply here as well, within some degree of approximation.
    • Hide

       The refactor of Taranta will be limited to the Devices sub-app (now the Devices and Dashboards sub-apps use each a different react store):

      • the new store of Devices will be restructured as was explored in the previous POC and will contain data frames produced by TangoGQL;
      • the rendering of devices will be based on the new mechanism based on new React guidelines for useReducer and useDispatch functionalities, as per POC;
      • the existing Dashboard sub-app will be untouched and will keep working as it does now.

      The end result will be a new Taranta, with a refactored Devices and the current Dashboard apps. It is expected that in the future we will refactor the Dashboard app along the same lines, and that such a refactor will require less work.

      • the dashboard editor, the Device view, the running dashboards, and the existing widgets should behave (in editor and in running dashboards) as they do now
      • the new architecture should replace 100% of the old one
      • unit and component tests should cover the new code.

       

      Refactoring concerning webpack5 and federated modules is out of scope.

      COMMENT: the current feature point is my own guess. It should be considered as a timebox. Waiting for a deeper discussion with CREAM.

      Show
       The refactor of Taranta will be limited to the Devices sub-app (now the Devices and Dashboards sub-apps use each a different react store): the new store of Devices will be restructured as was explored in the previous POC and will contain data frames produced by TangoGQL; the rendering of devices will be based on the new mechanism based on new React guidelines for useReducer and useDispatch functionalities, as per POC; the existing Dashboard sub-app will be untouched and will keep working as it does now. The end result will be a new Taranta, with a refactored Devices and the current Dashboard apps. It is expected that in the future we will refactor the Dashboard app along the same lines, and that such a refactor will require less work. the dashboard editor, the Device view, the running dashboards, and the existing widgets should behave (in editor and in running dashboards) as they do now the new architecture should replace 100% of the old one unit and component tests should cover the new code.   Refactoring concerning webpack5 and federated modules is out of scope. COMMENT: the current feature point is my own guess. It should be considered as a timebox. Waiting for a deeper discussion with CREAM.
    • 4
    • 5.8
    • 0
    • Team_CREAM
    • Sprint 4
    • Show
      Tests and docs:  https://taranta.readthedocs.io/en/sp-3057-refactor-devices-tab/ Merged on SKAMPI:  https://gitlab.com/ska-telescope/ska-skampi/-/commit/7e07bb9c1fd24fd27779b64674d1522b8fd9384d   System demo:  https://confluence.skatelescope.org/display/SE/2023-02-16+OMC+ART+System+Demo+17.5   New chart 2.0.0:  https://artefact.skao.int/#browse/browse:helm-internal:ska-tango-taranta%2F2.0.0%2Fska-tango-taranta-2.0.0.tgz   REL: https://jira.skatelescope.org/projects/REL/issues/REL-466  
    • 17.6
    • NFRS met, Demonstrated, Satisfies Acceptance Criteria, Accepted by FO
    • PI24 - UNCOVERED

    • SYSTEM_DEMO_6 Taranta Team_CREAM

    Description

      In PI16 we completed a spike https://jira.skatelescope.org/browse/SP-2712 with the conclusion that for the Performance viewpoint, there are significant positive effects that can be achieved with the new architecture.  In addition, a bug related to an important memory leak would be solved by adopting the new design.

      We also saw that those effects can be achieved also when a webpack5 federated module architecture is used. So the refactor is compatible with the possible future change that we are considering for Taranta.

       

      Relevant design: https://docs.google.com/document/d/1lY3FNwkSQ8kLT54XxaOLUFodAAPvn-xAclcniHBoK3I/edit#heading=h.kdtbt0546pre

      However, that study did not cover the refactoring of Taranta frontend along those lines. This feature is about introducing the architectural changes used in the prototype TarantaPoc into Taranta.

      (what follows was added during PI17 Planning after a conversation with CREAM)

      After a discussion with CREAM we descoped the feature (as it is now it is believed to require way more than 3 FPs, no less than 5 and possibly 8) as described in revised acceptance criteria.

       

       

      Attachments

        Issue Links

          Structure

            Activity

              People

                g.brajnik Brajnik, Giorgio
                g.brajnik Brajnik, Giorgio
                Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Feature Progress

                  Story Point Burn-up: (100.00%)

                  Feature Estimate: 4.0

                  IssuesStory Points
                  To Do00.0
                  In Progress   00.0
                  Complete1545.0
                  Total1545.0

                  Dates

                    Created:
                    Updated:
                    Resolved:

                    Structure Helper Panel