[rules-users] inserting collection of facts

Greg Barton greg_barton at yahoo.com
Fri Nov 7 11:17:32 EST 2008


--- On Fri, 11/7/08, techy <techluver007 at gmail.com> wrote:

> 1. I can't have multiple session from same rulebase and
> assign each session to single thread. right?

No reason why you couldn't.  The Session is what holds the state.  Now there may be differences between StatefulSession and StatelessSession.  StatelessSession you can definately do this.  The originating RuleBase maintains no reference to the StatelessSessions spawned from it.  A RuleBase does maintain references to the StatefulSessions it spawns, so you should be aware of that.  I'd say if you create the StatefulSessions in a single thread, then execute them in their own child threads, you should be fine.

> 2. Can I use drools 5 in production environment? if not, 
> when is first prod release expected?

That's a question for the dev team. :)

> 3. where can I do look for rule base partitioning
> examples/info?

I looked last night through the docs in trunk and couldn't find any, but all I did was "grep -i partitioning".  Probably the best place to look is in the unit tests.  There's only one method you need to call to set it up, setMultiThreadedEvaluation(boolean).  And see this unit test in trunk for an example:

drools-compiler\src\test\java\org\drools\integrationtests\RulebasePartitioningTest.java

> 
> 
> Greg Barton wrote:
> > 
> > I'm assuming you'll be running each rule base
> in a separate thread
> > simultaneously?  There are no dependencies between the
> rules in the five
> > rule bases?  If so, that will work just fine.  
> > 
> > If your rules are simple enough you can use sequential
> mode.  It can speed
> > up execution quite a bit. 
> > 
> >
> http://downloads.jboss.com/drools/docs/4.0.7.19894.GA/html_single/index.html#d0e1295
> > 
> > This could be used in conjunction with the
> simultaneous execution above.
> > 
> > Finally, you can get some multithreaded benefit in a
> single rule session
> > if you're using drools 5 and turn on rule base
> partitioning.  As I
> > understand it this works best when the rules have less
> join conditions in
> > them. (i.e. mostly single object conditions, and less
> multi-object
> > conditions.)
> > 
> > --- On Thu, 11/6/08, techy
> <techluver007 at gmail.com> wrote:
> > 
> >> From: techy <techluver007 at gmail.com>
> >> Subject: [rules-users] Rule processing for High
> volume input
> >> To: rules-users at lists.jboss.org
> >> Date: Thursday, November 6, 2008, 3:41 PM
> >> I have to run rules(1000 rules) against 20-30
> million of
> >> record each day.
> >> I guess I would have memory issue If I insert all
> of
> >> records into working
> >> memory.
> >> 
> >> so I'm thinking to have multiple rule base
> instance and
> >> do batch processing
> >> as given below.so that I can avoid memory issue
> and quick
> >> rule processing
> >> 
> >> 
> >> a.Take  first 1 million records and distribute 1
> millon
> >> across working
> >> memory of 5 rule base.
> >> b.fire rules in all 5 rule base
> >> c.clear working memory of all rule base
> >> d. take next 1 million record and start from
> step-a till I
> >> process all of
> >> the records.
> >> 
> >> 
> >> Please advise whether this is possible/recommended
> way or
> >> not.
> >> 
> >> thanks


      



More information about the rules-users mailing list