Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-7328

Sliding Time Window: Performance problem

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Critical
    • 8.35.0.Final
    • 8.33.0.Final
    • None
    • None
    • 2023 Week 06-08 (from Feb 6)
    • NEW
    • NEW
    • ---
    • ---

    Description

      Under a load of hundreds of thousands of events per sliding time window, the core starts to lag.

      Thread dump:

      "main@1" prio=5 tid=0x1 nid=NA runnable
        java.lang.Thread.State: RUNNABLE
            at java.util.PriorityQueue.indexOf(PriorityQueue.java:357)
            at java.util.PriorityQueue.remove(PriorityQueue.java:376)
            at org.drools.core.rule.SlidingTimeWindow$SlidingTimeWindowContext.remove(SlidingTimeWindow.java:285)
            at org.drools.core.rule.SlidingTimeWindow.retractFact(SlidingTimeWindow.java:157)
            at org.drools.core.rule.BehaviorManager.retractFact(BehaviorManager.java:99)
            at org.drools.core.reteoo.WindowNode.retractRightTuple(WindowNode.java:157)
            at org.drools.core.reteoo.RightTupleImpl.retractTuple(RightTupleImpl.java:262)
            at org.drools.core.reteoo.ObjectTypeNode.lambda$retractRightTuples$2(ObjectTypeNode.java:337)
            at org.drools.core.reteoo.ObjectTypeNode$$Lambda$176.793618227.accept(Unknown Source:-1)
            at org.drools.core.common.DefaultFactHandle$SingleLinkedTuples.forEachRightTuple(DefaultFactHandle.java:694)
            at org.drools.core.common.DefaultFactHandle.forEachRightTuple(DefaultFactHandle.java:914)
            at org.drools.core.reteoo.ObjectTypeNode.retractRightTuples(ObjectTypeNode.java:337)
            at org.drools.kiesession.agenda.DefaultAgenda.doRetract(DefaultAgenda.java:1345)
            at org.drools.kiesession.agenda.DefaultAgenda.flushExpirations(DefaultAgenda.java:1336)
            at org.drools.kiesession.agenda.DefaultAgenda.fireLoop(DefaultAgenda.java:757)
            at org.drools.kiesession.agenda.DefaultAgenda.internalFireAllRules(DefaultAgenda.java:694)
            at org.drools.kiesession.agenda.DefaultAgenda.fireAllRules(DefaultAgenda.java:686)
            at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1092)
            at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1083)
            at org.drools.kiesession.session.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1067) 

      There is some complexity around queue and removing elements:

      Attachments

        Issue Links

          Activity

            People

              mfusco@redhat.com Mario Fusco
              rady66@hotmail.com Radoslav Ivanov (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: