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

Performance: Change storing of classification to edges instead of vertex property.

XMLWordPrintable

    • Icon: Story Story
    • Resolution: Won't Do
    • Icon: Major Major
    • 2.x Future
    • 2.1.0.Final
    • MTA CLI
    • None
    • None

      Classification is not a value, it's rather assigning nodes to certain class of findings. IOW, it's a relation, and as such, it should be modelled an edge from the classified item into a node representing the particular class.

      Current solution, when we are storing classification "discriminator" as a string to the "ClassificationModel:classification" property, leads to very bad performance:

      03:40:42,170 WARNING [com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx] (AeshProcess: 4) Query requires iterating over all vertices [(ClassificationModel:classification = WSDL Definition)]. For better performance, use indexes
      ...
      Windup execution took 10621 seconds to execute on input: /home/ondra/Desktop/windup-vyzkouset.ear
      

      Even if we add index to that property, IMO using edges will still provide better performance. I could try that.
      The same applies to certain other properties:
      "packageName" could rather be a vertex with a package name.
      RuleProviders should be a vertexes, and Hint's "originatingProvider" should change to an edge to that.

      Also, I think there's something structurally wrong in the XML classification - it queries the same data again and again, rather than iterating over the previous results. Subject to investigation.

              Unassigned Unassigned
              ozizka_jira Ondrej Zizka (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: