-
Story
-
Resolution: Won't Do
-
Major
-
2.1.0.Final
-
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.
- relates to
-
WINDUP-529 Performance issue: Query requires iterating over all vertices [(ClassificationModel:classification = ...)]
- Closed