Uploaded image for project: 'WINDUP - Red Hat Application Migration Toolkit'
  1. WINDUP - Red Hat Application Migration Toolkit
  2. WINDUP-1072

<or> + parameterization together causes very bad performance

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • None
    • None
    • None
    • None

      Combination of two conditions and parameterization seems to cause performance much slower than two separate rules for the same conditions.

      See the rule modified in https://github.com/windup/windup-rulesets/pull/158/files – on a large app this rule caused the run time to increase from 25 to 40 minutes; splitting it into two rules caused the time to return to 25 minutes.

      This was the cause of the big performance drop on May 23. Not sure what exactly causes this to happen. It seems too easy to author a rule that triggers this kind of problem – intuitively, OR-ing two conditions seems like it shouldn't take any longer than the sum of the time to check the two separately.

      <jsightler_> I think the problem is a combination of "or" and parameterization. It is causing this method to get executed many times for some reason.
      <dansmit> so, i split the two conditions into totally separate rules, and that run is almost done
      <dansmit> havent been paying attention to it but we'll see soon how long it took
      <dansmit> 22 min
      <dansmit> supports your theory.
      <jsightler_> yeah, this makes sense... I can't think of any reason while the file query would be vastly slower.
      <jsightler_> It must be getting called thousands of times for some reason.
      <dansmit> i guess i don't really understand why that'd happen
      <jsightler_> parameterization is a nice feature, but the implementation is a real mess, imo
      <jsightler_> Also, this rule is abusing the feature... it is supposed to be usable for things like tying multiple conditions together.

              Unassigned Unassigned
              dansmit Dan Smith (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: