Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor Left and Right Tuples aligned with Super Cache improvements #5648 #5649

Merged
merged 9 commits into from
Jan 17, 2024

Conversation

mdproctor
Copy link
Contributor

More detail in the opened issue #5648.
#5648

@@ -228,6 +228,25 @@
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-sivparvismagna</artifactId>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this new module? I don't see it in your pull request (and the name is very cryptic). If this is a leftover can you please remove this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh that is a mistake, let me fix that :) didn't realis that was still in there.

pom.xml Outdated
@@ -162,6 +162,7 @@
<module>drools-io</module>
<module>drools-core</module>
<module>drools-base</module>
<!--module>drools-sicparvismagna</module-->
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove.

pom.xml Outdated
@@ -272,6 +273,7 @@
<module>drools-ruleunits</module>
<module>drools-core</module>
<module>drools-base</module>
<module>drools-sivparvismagna</module>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not existing new module, please remove.

@@ -0,0 +1,45 @@
package org.drools.core.reteoo;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing Apache header.

@@ -45,7 +46,10 @@ public interface NodeMemories {
Memory peekNodeMemory( int memoryId );

default Memory peekNodeMemory(NetworkNode node) {
return node instanceof MemoryFactory ? peekNodeMemory(((MemoryFactory)node).getMemoryId()) : null;
if (!NodeTypeEnums.isMemoryFactory(node) ) {
System.out.println("pause");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this System.out

public class SuperCacheFixer {
public static LeftTupleNode getLeftTupleNode(TupleImpl t) {
Sink s = t.getSink();
switch (((BaseNode) s).getType()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary cast.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought this was needed, when working against interfaces - to avoid potential super cache issues?


public static RightTupleSink getRightTupleSink(RightTuple t) {
Sink s = t.getSink();
switch (((BaseNode) s).getType()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary cast.

}

public static LeftTupleSinkNode asLeftTupleSink(NetworkNode n) {
switch (((BaseNode) n).getType()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary cast.

}

public static NetworkNode checkcast(NetworkNode n) {
switch (((BaseNode)n).getType()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary cast.


public static ObjectTypeNode getObjectTypeNode(TupleImpl t) {
Sink s = t.getSink();
switch (((BaseNode) s).getType()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary cast.


public static ObjectTypeNodeId getLeftInputOtnId(TupleImpl t) {
Sink s = t.getSink();
switch (((BaseNode) s).getType()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary cast.


public static ObjectTypeNodeId getRightInputOtnId(TupleImpl t) {
Sink s = t.getSink();
switch (((BaseNode) s).getType()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary cast.

public static LeftTupleSource getLeftTupleSource(TupleImpl t) {
Sink s = t.getSink();
LeftTupleSource n;
switch (((BaseNode) s).getType()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary cast.

throw new UnsupportedOperationException("Does not have a LeftTupleSource: " + s);
}

switch (n.getType()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't be better to collapse these 2 subsequent switches into a single one?

throw new UnsupportedOperationException("Node does not have an ObjectSource: " + s);
}

switch (o.getType()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't be better to collapse these 2 subsequent switches into a single one?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is not possible because we don't know the concrete type of getLeftTupleSource(), so it needs a second switch. However, this is only true if performance is improved via the concrete cast. If this cast adds no perf value, it can be removed.

public static ObjectSource getObjectSource(TupleImpl t) {
Sink s = t.getSink();
ObjectSource o;
switch (((BaseNode) s).getType()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary cast.


public static TerminalNode asTerminalNode(TupleImpl t) {
Sink s = t.getSink();
switch (((BaseNode) t.getSink()).getType()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary cast.

}

public static TerminalNode asTerminalNode(NetworkNode n) {
switch (((BaseNode)n).getType()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary cast.

public class BetaMemory<C> extends AbstractBaseLinkedListNode<Memory>
implements
SegmentNodeMemory {
public interface BetaMemory<C> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it necessary to introduce this interface? Maybe I'm missing something but I see only one implementation.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, this was related to some work I did initially. I can revert for now. I wanted to move stuff out of core and avoid bringing too much into -base.

Copy link
Contributor

@mariofusco mariofusco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work, thanks for this refactor, it's much cleaner now. Please only review my comments, especially the ones on the unnecessary new module declaration.

-Remove unecessary if statement with printout.
-Removed incorrectly added maven module.
@tkobayas
Copy link
Contributor

tkobayas commented Jan 16, 2024

Benchmark result:

== ConcurrentUpdateLeftTupleBenchmark

* without PR

Benchmark                                (factsNr)  (joinsNr)  (rulesNr)  Mode  Cnt     Score     Error  Units
ConcurrentUpdateLeftTupleBenchmark.test         15          3         32    ss   20  3101.654 ± 276.084  ms/op

* with PR (pr5649 "Added missing headers" commit)

Benchmark                                (factsNr)  (joinsNr)  (rulesNr)  Mode  Cnt     Score     Error  Units
ConcurrentUpdateLeftTupleBenchmark.test         15          3         32    ss   20  2797.595 ± 283.705  ms/op

* with PR (pr5649 ""minor semplifications" commit)

Benchmark                                (factsNr)  (joinsNr)  (rulesNr)  Mode  Cnt     Score     Error  Units
ConcurrentUpdateLeftTupleBenchmark.test         15          3         32    ss   20  2697.594 ± 336.063  ms/op

== ConcurrentUpdateRightTupleBenchmark

* without PR

Benchmark                                 (factsNr)  (joinsNr)  (rulesNr)  Mode  Cnt     Score     Error  Units
ConcurrentUpdateRightTupleBenchmark.test         15          3         32    ss   20  5597.697 ± 262.842  ms/op

* with PR (pr5649 "Added missing headers" commit)

Benchmark                                 (factsNr)  (joinsNr)  (rulesNr)  Mode  Cnt     Score     Error  Units
ConcurrentUpdateRightTupleBenchmark.test         15          3         32    ss   20  5481.104 ± 235.062  ms/op

* with PR (pr5649 ""minor semplifications" commit)

Benchmark                                 (factsNr)  (joinsNr)  (rulesNr)  Mode  Cnt     Score     Error  Units
ConcurrentUpdateRightTupleBenchmark.test         15          3         32    ss   20  5312.335 ± 223.294  ms/op

@tkobayas tkobayas self-requested a review January 16, 2024 07:59
@tkobayas
Copy link
Contributor

type pollution report (omitting types count less than 10000)

  • ConcurrentUpdateLeftTupleBenchmark

== without PR

--------------------------
1:	org.drools.core.reteoo.NotNode
Count:	83205982
Types:
	org.drools.core.reteoo.LeftTupleSinkNode
	org.drools.core.reteoo.LeftTupleSink
	org.drools.core.reteoo.ObjectSinkNode
	org.drools.core.common.MemoryFactory
Traces:
	org.drools.core.reteoo.SingleLeftTupleSinkAdapter.getFirstLeftTupleSink(SingleLeftTupleSinkAdapter.java:67)
		class: org.drools.core.reteoo.LeftTupleSinkNode
		count: 41860897
	org.drools.core.reteoo.LeftTuple.getTupleSink(LeftTuple.java:361)
		class: org.drools.core.reteoo.LeftTupleSink
		count: 41344435
	org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:599)
		class: org.drools.core.reteoo.ObjectSinkNode
		count: 452
	org.drools.core.reteoo.CompositeObjectSinkAdapter.addObjectSink(CompositeObjectSinkAdapter.java:196)
		class: org.drools.core.reteoo.ObjectSinkNode
		count: 96
	org.drools.core.common.BaseNode.initMemoryId(BaseNode.java:99)
		class: org.drools.core.common.MemoryFactory
		count: 95
	org.drools.core.reteoo.CompositeObjectSinkAdapter.getSinks(CompositeObjectSinkAdapter.java:854)
		class: org.drools.core.reteoo.ObjectSinkNode
		count: 7
--------------------------
2:	org.drools.tms.agenda.TruthMaintenanceSystemRuleTerminalNodeLeftTuple
Count:	4069573
Types:
	org.drools.core.rule.consequence.InternalMatch
	org.drools.core.reteoo.Tuple
Traces:
	org.drools.core.phreak.RuleExecutor.getNextTuple(RuleExecutor.java:198)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 2016240
	org.drools.core.util.index.TupleList.removeFirst(TupleList.java:152)
		class: org.drools.core.reteoo.Tuple
		count: 2015803
	org.drools.core.phreak.RuleExecutor.fire(RuleExecutor.java:143)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 15151
	org.drools.core.phreak.PhreakRuleTerminalNode.doLeftTupleInsert(PhreakRuleTerminalNode.java:114)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 13121
	org.drools.core.phreak.RuleExecutor.addLeftTuple(RuleExecutor.java:289)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 9226
	org.drools.mvel.asm.ConsequenceGenerator.generate(ConsequenceGenerator.java:45)
		class: org.drools.core.reteoo.Tuple
		count: 32
--------------------------

== with PR (pr5649 "Added missing headers" commit)

--------------------------
1:	org.drools.tms.agenda.TruthMaintenanceSystemRuleTerminalNodeLeftTuple
Count:	3029318
Types:
	org.drools.core.rule.consequence.InternalMatch
	org.drools.core.util.DoubleLinkedEntry
	org.drools.core.reteoo.Tuple
Traces:
	org.drools.core.util.LinkedList.removeFirst(LinkedList.java:197)
		class: org.drools.core.util.DoubleLinkedEntry
		count: 1497283
	org.drools.core.phreak.RuleExecutor.getNextTuple(RuleExecutor.java:199)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 1362485
	org.drools.core.phreak.PhreakRuleTerminalNode.doLeftTupleInsert(PhreakRuleTerminalNode.java:115)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 89743
	org.drools.core.phreak.RuleExecutor.fire(RuleExecutor.java:144)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 79775
	org.drools.mvel.asm.ConsequenceGenerator.generate(ConsequenceGenerator.java:45)
		class: org.drools.core.reteoo.Tuple
		count: 32
--------------------------
2:	org.drools.core.reteoo.BetaMemoryImpl
Count:	87889
Types:
	org.drools.core.common.Memory
	org.drools.core.reteoo.BetaMemory
	org.drools.core.util.DoubleLinkedEntry
Traces:
	org.drools.core.reteoo.BetaNode.getBetaMemoryFromRightInput(BetaNode.java:654)
		class: org.drools.core.reteoo.BetaMemory
		count: 40561
	org.drools.core.common.ConcurrentNodeMemories.getNodeMemory(ConcurrentNodeMemories.java:91)
		class: org.drools.core.common.Memory
		count: 39438
	org.drools.core.util.AbstractLinkedListNode.setNext(AbstractLinkedListNode.java:30)
		class: org.drools.core.util.DoubleLinkedEntry
		count: 3561
	org.drools.core.phreak.LazyPhreakBuilder.createSegmentMemory(LazyPhreakBuilder.java:1468)
		class: org.drools.core.common.Memory
		count: 3070
	org.drools.core.reteoo.BetaNode.createMemory(BetaNode.java:533)
		class: org.drools.core.common.Memory
		count: 1258
	org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:362)
		class: org.drools.core.common.Memory
		count: 1
--------------------------

== with PR (pr5649 "minor semplifications" commit)

--------------------------
1:	org.drools.tms.agenda.TruthMaintenanceSystemRuleTerminalNodeLeftTuple
Count:	3130495
Types:
	org.drools.core.rule.consequence.InternalMatch
	org.drools.core.util.DoubleLinkedEntry
	org.drools.core.reteoo.Tuple
Traces:
	org.drools.core.phreak.RuleExecutor.getNextTuple(RuleExecutor.java:199)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 1544318
	org.drools.core.util.LinkedList.removeFirst(LinkedList.java:197)
		class: org.drools.core.util.DoubleLinkedEntry
		count: 1449059
	org.drools.core.phreak.PhreakRuleTerminalNode.doLeftTupleInsert(PhreakRuleTerminalNode.java:115)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 85686
	org.drools.core.phreak.RuleExecutor.fire(RuleExecutor.java:144)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 51400
	org.drools.mvel.asm.ConsequenceGenerator.generate(ConsequenceGenerator.java:45)
		class: org.drools.core.reteoo.Tuple
		count: 32
--------------------------

@tkobayas
Copy link
Contributor

  • ConcurrentUpdateRightTupleBenchmark

== without PR

--------------------------
1:	org.drools.tms.agenda.TruthMaintenanceSystemRuleTerminalNodeLeftTuple
Count:	3804433
Types:
	org.drools.core.reteoo.Tuple
	org.drools.core.rule.consequence.InternalMatch
Traces:
	org.drools.core.util.index.TupleList.removeFirst(TupleList.java:152)
		class: org.drools.core.reteoo.Tuple
		count: 1917615
	org.drools.core.phreak.RuleExecutor.getNextTuple(RuleExecutor.java:198)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 1767759
	org.drools.core.phreak.RuleExecutor.fire(RuleExecutor.java:143)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 67069
	org.drools.core.phreak.PhreakRuleTerminalNode.doLeftTupleInsert(PhreakRuleTerminalNode.java:114)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 32121
	org.drools.core.phreak.RuleExecutor.addLeftTuple(RuleExecutor.java:289)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 19837
	org.drools.mvel.asm.ConsequenceGenerator.generate(ConsequenceGenerator.java:45)
		class: org.drools.core.reteoo.Tuple
		count: 32
--------------------------
2:	org.drools.core.reteoo.JoinNode
Count:	359517
Types:
	org.drools.core.reteoo.ObjectSinkNode
	org.drools.core.reteoo.LeftTupleSinkNode
	org.drools.core.common.MemoryFactory
Traces:
	org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateModifyObject(CompositeObjectSinkAdapter.java:670)
		class: org.drools.core.reteoo.ObjectSinkNode
		count: 203013
	org.drools.core.reteoo.LeftTuple.toFactHandles(LeftTuple.java:424)
		class: org.drools.core.reteoo.LeftTupleSinkNode
		count: 154308
	org.drools.core.reteoo.SingleLeftTupleSinkAdapter.getFirstLeftTupleSink(SingleLeftTupleSinkAdapter.java:67)
		class: org.drools.core.reteoo.LeftTupleSinkNode
		count: 1931
	org.drools.core.reteoo.CompositeObjectSinkAdapter.addObjectSink(CompositeObjectSinkAdapter.java:196)
		class: org.drools.core.reteoo.ObjectSinkNode
		count: 96
	org.drools.core.common.BaseNode.initMemoryId(BaseNode.java:99)
		class: org.drools.core.common.MemoryFactory
		count: 95
	org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:599)
		class: org.drools.core.reteoo.ObjectSinkNode
		count: 69
	org.drools.core.reteoo.CompositeObjectSinkAdapter.getSinks(CompositeObjectSinkAdapter.java:854)
		class: org.drools.core.reteoo.ObjectSinkNode
		count: 5
--------------------------

== with PR (pr5649 "Added missing headers" commit)

--------------------------
1:	org.drools.tms.agenda.TruthMaintenanceSystemRuleTerminalNodeLeftTuple
Count:	3823320
Types:
	org.drools.core.util.DoubleLinkedEntry
	org.drools.core.rule.consequence.InternalMatch
	org.drools.core.reteoo.Tuple
Traces:
	org.drools.core.util.LinkedList.removeFirst(LinkedList.java:197)
		class: org.drools.core.util.DoubleLinkedEntry
		count: 1914022
	org.drools.core.phreak.RuleExecutor.getNextTuple(RuleExecutor.java:199)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 1762549
	org.drools.core.phreak.RuleExecutor.fire(RuleExecutor.java:144)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 89180
	org.drools.core.phreak.PhreakRuleTerminalNode.doLeftTupleInsert(PhreakRuleTerminalNode.java:115)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 57537
	org.drools.mvel.asm.ConsequenceGenerator.generate(ConsequenceGenerator.java:45)
		class: org.drools.core.reteoo.Tuple
		count: 32
--------------------------
2:	org.drools.core.reteoo.JoinNode
Count:	162346
Types:
	org.drools.core.reteoo.ObjectSinkNode
	org.drools.core.reteoo.LeftTupleSinkNode
	org.drools.core.common.MemoryFactory
Traces:
	org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateModifyObject(CompositeObjectSinkAdapter.java:670)
		class: org.drools.core.reteoo.ObjectSinkNode
		count: 91535
	org.drools.core.reteoo.TupleImpl.toFactHandles(TupleImpl.java:282)
		class: org.drools.core.reteoo.LeftTupleSinkNode
		count: 70620
	org.drools.core.reteoo.CompositeObjectSinkAdapter.addObjectSink(CompositeObjectSinkAdapter.java:196)
		class: org.drools.core.reteoo.ObjectSinkNode
		count: 96
	org.drools.core.common.BaseNode.initMemoryId(BaseNode.java:100)
		class: org.drools.core.common.MemoryFactory
		count: 95
--------------------------
3:	org.drools.core.reteoo.BetaMemoryImpl
Count:	86988
Types:
	org.drools.core.common.Memory
	org.drools.core.reteoo.BetaMemory
	org.drools.core.util.DoubleLinkedEntry
Traces:
	org.drools.core.reteoo.BetaNode.getBetaMemoryFromRightInput(BetaNode.java:654)
		class: org.drools.core.reteoo.BetaMemory
		count: 41145
	org.drools.core.common.ConcurrentNodeMemories.getNodeMemory(ConcurrentNodeMemories.java:91)
		class: org.drools.core.common.Memory
		count: 38228
	org.drools.core.util.AbstractLinkedListNode.setNext(AbstractLinkedListNode.java:30)
		class: org.drools.core.util.DoubleLinkedEntry
		count: 3530
	org.drools.core.phreak.LazyPhreakBuilder.createSegmentMemory(LazyPhreakBuilder.java:1468)
		class: org.drools.core.common.Memory
		count: 2969
	org.drools.core.reteoo.BetaNode.createMemory(BetaNode.java:533)
		class: org.drools.core.common.Memory
		count: 1113
	org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:362)
		class: org.drools.core.common.Memory
		count: 3
--------------------------

== with PR (pr5649 "minor semplifications" commit)

--------------------------
1:	org.drools.tms.agenda.TruthMaintenanceSystemRuleTerminalNodeLeftTuple
Count:	3630033
Types:
	org.drools.core.util.DoubleLinkedEntry
	org.drools.core.rule.consequence.InternalMatch
	org.drools.core.reteoo.Tuple
Traces:
	org.drools.core.util.LinkedList.removeFirst(LinkedList.java:197)
		class: org.drools.core.util.DoubleLinkedEntry
		count: 1836328
	org.drools.core.phreak.RuleExecutor.getNextTuple(RuleExecutor.java:199)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 1660350
	org.drools.core.phreak.RuleExecutor.fire(RuleExecutor.java:144)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 79263
	org.drools.core.phreak.PhreakRuleTerminalNode.doLeftTupleInsert(PhreakRuleTerminalNode.java:115)
		class: org.drools.core.rule.consequence.InternalMatch
		count: 54060
	org.drools.mvel.asm.ConsequenceGenerator.generate(ConsequenceGenerator.java:45)
		class: org.drools.core.reteoo.Tuple
		count: 32
--------------------------
2:	org.drools.core.reteoo.JoinNode
Count:	108901
Types:
	org.drools.core.reteoo.ObjectSinkNode
	org.drools.core.reteoo.LeftTupleSinkNode
	org.drools.core.common.MemoryFactory
Traces:
	org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateModifyObject(CompositeObjectSinkAdapter.java:670)
		class: org.drools.core.reteoo.ObjectSinkNode
		count: 59360
	org.drools.core.reteoo.TupleImpl.toFactHandles(TupleImpl.java:282)
		class: org.drools.core.reteoo.LeftTupleSinkNode
		count: 49350
	org.drools.core.reteoo.CompositeObjectSinkAdapter.addObjectSink(CompositeObjectSinkAdapter.java:196)
		class: org.drools.core.reteoo.ObjectSinkNode
		count: 96
	org.drools.core.common.BaseNode.initMemoryId(BaseNode.java:100)
		class: org.drools.core.common.MemoryFactory
		count: 95
--------------------------

@mariofusco mariofusco merged commit a1c4f80 into apache:main Jan 17, 2024
9 checks passed
rgdoliveira pushed a commit to rgdoliveira/drools that referenced this pull request Jan 19, 2024
…pache#5648 (apache#5649)

* -BetaConstraints no longer depends on ReteEvaluator.

* -Trying to separate BetaMemory so BetaConstraints can go in -base.

* -Refactoring Tuples around concrete classes.

* -Centralise and improve super cache handling fix.
-Improve NodeTypeEnums to contain more information (at no cost) and replace as many instanceof as possible.

* -Move Super Cache helper methods into standalone class SuperCacheFixer.

* -Remove RightTuple interface.

* -Refactory creation to a Factory with switch for different implementations.

* -Added missing headers.
-Remove unecessary if statement with printout.
-Removed incorrectly added maven module.

* minor semplifications

---------

Co-authored-by: mariofusco <[email protected]>
rgdoliveira pushed a commit to rgdoliveira/drools that referenced this pull request Jan 19, 2024
…pache#5648 (apache#5649)

* -BetaConstraints no longer depends on ReteEvaluator.

* -Trying to separate BetaMemory so BetaConstraints can go in -base.

* -Refactoring Tuples around concrete classes.

* -Centralise and improve super cache handling fix.
-Improve NodeTypeEnums to contain more information (at no cost) and replace as many instanceof as possible.

* -Move Super Cache helper methods into standalone class SuperCacheFixer.

* -Remove RightTuple interface.

* -Refactory creation to a Factory with switch for different implementations.

* -Added missing headers.
-Remove unecessary if statement with printout.
-Removed incorrectly added maven module.

* minor semplifications

---------

Co-authored-by: mariofusco <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants