All very interesting.
 
Sadly, without spending time I don't have, this is beyond my level of
understanding.
 
Sometimes you have to be honest and admit you're out of your depth, so
I'll leave this with the experts...
 
Relative to this observer you're moving at one heck of a pace!
 
Thanks for the reply though.
 
Mike 


________________________________

        From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Mark Proctor
        Sent: 01 August 2008 18:28
        To: Rules Dev List
        Subject: [rules-dev] [Fwd: Re: [rules-users] determinism with
rulebasepartitioning]
        
        
        Forwarding the email to the dev mailing list, I meant the
conversation to be on this list anyway - sorry.
        
        mark
        
        -------- Original Message --------
        
        

            I think that even with rulebase partitions, we should
continue to support current execution mode. So, we should keep a
rulebase configuration that basically allow the user to defines: either
single-thread (as it is today) or multi-thread (as we are trying to
achieve) execution.
        
            Having that in mind, in the multi-thread mode:
        
        (A) What does "parallel evaluation of a rulebase" mean? Is it
designed
        to optimise, for example, two threads processing a stateless and
        stateful session?
           Means that rules that do not share nodes, being independent
of each other (from an evaluation perspective), will be evaluated in
parallel. This is very common scenario and a desidered feature in CEP
engines.
        
        (B) Are there only two partitions, both of which are invisible
to the
        user? Is there any value in allowing user-defined partitions?
            There will be as many partitions as the compiler can create
for the given set of rules. Rules that share more nodes, are more
difficult to partition, while rules that are independent from an LHS
point of view, are easier to parallelize. In my opinion, the only thing
that may be helpful to expose and allow the user to control is the
maximum size of the thread pool that is used to propagate facts. Even
that I'm not sure is so helpful, because it is complex to fine tune such
things, since the partitioning is completely dependent on the rules
added to the rulebase.
        
        (C) Does the partition used depend upon what type of session is
used
        (i.e. stateless always uses the partition without an agenda
whereas
        stateful always uses the partition with an agenda)?
            The partitioning of the rulebase is dependent upon the rules
in the rulebase and nothing more. But that is different from the agenda.
The agenda issue is much more complex, because even with partitions we
can keep a single deterministic agenda (as long as it is not in active
mode - runUntilHalt). Now, if the agenda is in active mode, or if we
have multiple agendas (1 per partition, for instance), then the engine
behavior becomes indeterministic. This is a common scenario in CEP
systems that have multiple different "queries" running over the same set
of streams, trying to detect and act upon them as soon as they are
detected, and event streams are indeterministic by their own nature. In
common rules engines scenarios, I'm not sure we can run in this
indeterministic mode.
        
        (D) Can a rule sometimes be deterministic and sometimes not
(i.e.
        depends upon the type of session)?
            It will always depend on the set of rules (the rulebase),
not the type of session. One rule is always deterministic when
considered in isolation, but two or more rules may or may not be
deterministic in relation to each other. Just remember Eisten's
Relativity Theory... ;)
        
           []s
           Edson
        
        
        2008/8/1 Anstis, Michael (M.) <[EMAIL PROTECTED]>
        

                Hi Mark,
                
                A few questions:-
                
                (A) What does "parallel evaluation of a rulebase" mean?
Is it designed
                to optimise, for example, two threads processing a
stateless and
                stateful session?
                
                (B) Are there only two partitions, both of which are
invisible to the
                user? Is there any value in allowing user-defined
partitions?
                
                (C) Does the partition used depend upon what type of
session is used
                (i.e. stateless always uses the partition without an
agenda whereas
                stateful always uses the partition with an agenda)?
                
                (D) Can a rule sometimes be deterministic and sometimes
not (i.e.
                depends upon the type of session)?
                
                Cheers,
                
                Mike
                

                -----Original Message-----
                From: [EMAIL PROTECTED]
                [mailto:[EMAIL PROTECTED] On Behalf
Of Mark Proctor
                Sent: 01 August 2008 07:05
                To: Rules Users List
                Subject: [rules-users] determinism with rulebase
partitioning
                
                We have rulebase partitioning almost working, this
allows parallel
                evaluation of a rulebase. For stateless lessions with no
agenda this
                will allow for much faster executions, where you don't
care about
                deterministic execution. However for deterministic
execution its more
                complicated. The current plan is to have an agenda per
parition, which
                means that we no longer have rulebase wide deterministic
execution
                order, only with the partition itself. The user is
unlikely to be aware
                of the created partitions, so won't be aware of the
unditermistic
                behavour of their rulebase. Anyone have any input on
mechanisms users
                can do to help the rulebase know what needs to be
executed
                deterministically and what doesn't?
                
                Mark
                _______________________________________________
                rules-users mailing list
                [EMAIL PROTECTED]
                https://lists.jboss.org/mailman/listinfo/rules-users
                
                _______________________________________________
                rules-users mailing list
                [EMAIL PROTECTED]
                https://lists.jboss.org/mailman/listinfo/rules-users
                




        -- 
        Edson Tirelli
        JBoss Drools Core Development
        JBoss, a division of Red Hat @ www.jboss.com
        

_______________________________________________
rules-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-dev

Reply via email to