mdproctor opened a new issue, #5648: URL: https://github.com/apache/incubator-kie-drools/issues/5648
The super cache fix work has shown a need to change how we work with certain classes and interfaces. This preliminary work moves a few places to use concrete classes and and cast where necessary. This work has demonstrated performance improvements - however, it's left the code in a place where it sometimes uses interfaces and sometimes uses concrete classes. Further, without an interface-only approach, the current code will make it impossible to do bi-linear networks, which would improve network sharing. The following code refactors Left and Right Tuples to promote and use concrete classes everywhere. IT further centralises and expands on the Super Cache fixer code, to ensure casts are used based on switches rather than the previous chained if statements. The code reworks NodeTypeEnums, to include more information (at no extra cost), this allows a large number of instanceof uses too be removed - although it's not clear if Sink.getType or NetworkNode.getType() is slow, i.e. should we cast to BaseNode always before calling getType(). Lastly the code improves the api around LinkedLists and the supporting classes and interfaces. Making DoubleLinkedEntry extend SingleLinkedEntry and further making all classes extend those. This also results in simplifications for TupleLists. What I will explore next is if FactHandle could now just extend TupleImpl, too, instead of using the separate LinkedTuples classes. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
