Uploaded image for project: 'OpenNMS'
  1. OpenNMS
  2. NMS-8527

Find a faster way of determining root-cause or impacting vertices

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 18.0.0
    • Fix Version/s: 19.0.0
    • Component/s: BSM
    • Security Level: Default (Default Security Scheme)
    • Labels:
      None

      Description

      At the moment to determine the impacting vertices of a vertex all possible sub sets of the edges are build.

      Let's assume there is a Vertex with n Edges.
      The number of possible combinations is n!.

      This may work for a small number of edges, however if the number exceeds 15 edges, it is not feasible anymore.

      In NMS-8501 the Impact Analysis is used to determine which edge is causing the status.
      This is calculated for each selected vertex.
      In the scenario 51 edges were defined.

      To fix the issue described in NMS-8501, the calculation of the impacting vertices was hard bound to 10 edges, and not performed otherwise.
      However we should find a faster way of calculating the impacting vertices in gernal

      The following describes n! calculations and the time it took on my local system to get a feeling about how bad n! can be:

      0! = 1 (took 10 ms)
      1! = 1 (took 6 ms)
      2! = 2 (took 0 ms)
      3! = 6 (took 0 ms)
      4! = 24 (took 1 ms)
      5! = 120 (took 1 ms)
      6! = 720 (took 1 ms)
      7! = 5040 (took 1 ms)
      8! = 40320 (took 2 ms)
      9! = 362880 (took 4 ms)
      10! = 3628800 (took 6 ms)
      11! = 39916800 (took 15 ms)
      12! = 479001600 (took 23 ms)
      13! = 6227020800 (took 29 ms)
      14! = 87178291200 (took 54 ms)
      15! = 1307674368000 (took 134 ms)
      16! = 20922789888000 (took 427 ms)
      17! = 355687428096000 (took 1419 ms)
      18! = 6402373705728000 (took 6062 ms)
      19! = 121645100408832000 (took 22379 ms)
      20! = 2432902008176640000 (took 54313 ms)
      21! = -4249290049419214848 (overflow!) (took 359357 ms)

      This also affects the "Impact Analysis Operation" and "Root Cause Analysis Operation" in the Topology UI.

      Please search for "NMS-8527" when working on this issue to find any clues/hacks in the code base.

        Attachments

          Activity

            People

            • Assignee:
              j-white Jesse White
              Reporter:
              mvr Markus von RĂ¼den
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: