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]

Reply via email to