Uploaded image for project: 'JBRULES'
  1. JBRULES
  2. JBRULES-1507

Objenesis too heavily used

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 4.0.4
    • Fix Version/s: 4.0.5, 5.0.0.M1
    • Component/s: None
    • Labels:
      None
    • Estimated Difficulty:
      Low

      Description

      We are using drools in heavily concurrent environment. We build new rulebase for every request that hits our application.
      There are no new bottlenecks or thread locks after using Jan's (I work in the same team as Jan Boboli does ) hack to the rulebase classloader, but it seems drools spends a lot of time in objenesis package classes trying to resolve proper instantiators for the very same classes with each request.
      This happens because method createObjenesis in AbstractRuleBase returns new instance of ObjenesisStd. There are scenarios in which this only causes performance degradadion (this is our case), so I decided to change the method to return static ObjenesisStd instead of new instance for each rulebase. After that drools rocketed up to 5 times faster than before
      I think it would be a great idea if you added a new option for RuleBaseConfiguration to give the user a choice of how objenesis is instantiated.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                tirelli Edson Tirelli
                Reporter:
                wkudla Wojciech Kudla
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 15 minutes
                  15m
                  Remaining:
                  Remaining Estimate - 15 minutes
                  15m
                  Logged:
                  Time Spent - Not Specified
                  Not Specified