Re: [rules-users] Drools Fusion Performance and RETE algorithm

2010-08-19 Thread Edson Tirelli
   Orlando,

The Power of Events has a full chapter on EPN. Also, it is a common
subject on the network.

Edson

2010/8/18 Orlando Costa orlandorica...@gmail.com


 Hi Edson
 I was more refering to more sub-set of ESP/CEP in my question, because of
 the description you have made about EPN and agent architecture that could
 be used as a footprint to a possible solution.

 Thus, I was wondering if there was more technical resource just on that
 topic (and not so much in CEP theory/background in general, as I already
 material on that).

 Best regards
 Orlando.

 --
 View this message in context:
 http://drools-java-rules-engine.46999.n3.nabble.com/Drools-Fusion-Performance-and-RETE-algorithm-tp1190098p1214947.html
 Sent from the Drools - User mailing list archive at Nabble.com.
 ___
 rules-users mailing list
 rules-users@lists.jboss.org
 https://lists.jboss.org/mailman/listinfo/rules-users




-- 
  Edson Tirelli
  JBoss Drools Core Development
  JBoss by Red Hat @ www.jboss.com
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools Fusion Performance and RETE algorithm

2010-08-18 Thread Orlando Costa

Hi Edson, 
This was really the kind of information I was looking for, many thanks! (I
think you should even put this text highlighted on the documentation
available at Drools site, these are very valuable insights).

I am kind of new in ESP/CEP (been reading Event Processing - Designing IT
Systems for Agile Companies and many other online info), but when you talk
about EPN (Event-Processing Network), this is a concept that I am not yet
familiar. This paragraph were you say:

Although, the chosen architecture for your kbase and sessions will
obviously have a high impact on the performance metrics you will achieve.
Since you mentioned that in your use case every single fact will match and
cause rules to fire, and the actions involve heavy operations like database
access, I would recommend looking into an agent architecture, where you
partition your knowledge base into several kbases with related rules. The
kbases will operate on the atomic (or raw) events and create the composite
events that you can feed into entry points of sessions of subsequent kbases,
effectively increasing the overall system throughput and simplifying the
maintenance of each agent's kbase in particular.

looks quite interesting to explore. Besides the book I mentioned (and I am
also going to check this on Event Processing in Action by Etzion) do you
recommend any resource (book, article, etc) that elaborates more on the
concepts you have described? 

Best regards
Orlando.






-- 
View this message in context: 
http://drools-java-rules-engine.46999.n3.nabble.com/Drools-Fusion-Performance-and-RETE-algorithm-tp1190098p1213845.html
Sent from the Drools - User mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools Fusion Performance and RETE algorithm

2010-08-18 Thread Edson Tirelli
   Hi Orlando,

   Dr. David Luckam's website has a lot of content on CEP:

http://www.complexevents.com/

http://www.complexevents.com/   Also, his book The Power of Events is
considered the publication that formalized the concept of CEP. It is a good
book, very helpful in understanding the overall concepts. Just be aware that
being a visionary book, on one hand, lots of requirements for CEP products
described there are still wishful thinking that no product on the market
implemented yet and on the other hand, some products offer several features
that were not envisioned by him at the time.

Edson


2010/8/18 Orlando Costa orlandorica...@gmail.com


 Hi Edson,
 This was really the kind of information I was looking for, many thanks! (I
 think you should even put this text highlighted on the documentation
 available at Drools site, these are very valuable insights).

 I am kind of new in ESP/CEP (been reading Event Processing - Designing IT
 Systems for Agile Companies and many other online info), but when you talk
 about EPN (Event-Processing Network), this is a concept that I am not yet
 familiar. This paragraph were you say:

 Although, the chosen architecture for your kbase and sessions will
 obviously have a high impact on the performance metrics you will achieve.
 Since you mentioned that in your use case every single fact will match and
 cause rules to fire, and the actions involve heavy operations like database
 access, I would recommend looking into an agent architecture, where you
 partition your knowledge base into several kbases with related rules. The
 kbases will operate on the atomic (or raw) events and create the
 composite
 events that you can feed into entry points of sessions of subsequent
 kbases,
 effectively increasing the overall system throughput and simplifying the
 maintenance of each agent's kbase in particular.

 looks quite interesting to explore. Besides the book I mentioned (and I am
 also going to check this on Event Processing in Action by Etzion) do you
 recommend any resource (book, article, etc) that elaborates more on the
 concepts you have described?

 Best regards
 Orlando.






 --
 View this message in context:
 http://drools-java-rules-engine.46999.n3.nabble.com/Drools-Fusion-Performance-and-RETE-algorithm-tp1190098p1213845.html
 Sent from the Drools - User mailing list archive at Nabble.com.
 ___
 rules-users mailing list
 rules-users@lists.jboss.org
 https://lists.jboss.org/mailman/listinfo/rules-users




-- 
  Edson Tirelli
  JBoss Drools Core Development
  JBoss by Red Hat @ www.jboss.com
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools Fusion Performance and RETE algorithm

2010-08-18 Thread Orlando Costa

Hi Edson
I was more refering to more sub-set of ESP/CEP in my question, because of
the description you have made about EPN and agent architecture that could
be used as a footprint to a possible solution. 

Thus, I was wondering if there was more technical resource just on that
topic (and not so much in CEP theory/background in general, as I already
material on that).

Best regards
Orlando.

-- 
View this message in context: 
http://drools-java-rules-engine.46999.n3.nabble.com/Drools-Fusion-Performance-and-RETE-algorithm-tp1190098p1214947.html
Sent from the Drools - User mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


[rules-users] Drools Fusion Performance and RETE algorithm

2010-08-17 Thread Orlando Ricardo Da Silva Costa
Hi all
Looking at Drools JBoss Rules 5 0 Developer's guide it addresses the
Fusion component at page 134, stating:
This problem cannot be solved by the standard Drools rule engine. The
volume of events is huge and it happens asynchronously. If we simply
inserted them into the  knowledge session, we would soon run out of
memory. While the Rete algorithm behind Drools doesn't have any
theoretical limitation on number of objects in the session, we could
use the processing power more wisely. Drools Fusion is the right
candidate for this kind of task.

Ok, but my question is if this is enough, because I would guess that
Fusion could be used to derived a more complex/rich event from the
stream of events, and afterwards that complex event would be inserted
in Working Memory (but not the flow of events that have generated the
more complex event), thus reducing RETE algorithm processing. But
since in our case every event will most certainly fire a rule, I am
not sure about Fusion's usage.

This is because our project is more a kind of
Event-Trigger-Rule/Action system, meaning we have a high volume of
incoming events (say more than 5000/minute), but each of the events
will have to trigger a rule (and usually a rule is more or less a
complex action, invoking DB operations and data structures
manipulation).

So, by using Fusion entry-points, would that be different than just
sending the events as normal facts to Working Memory, or by dividing
this in entry-points( or so called streams)  we would have benefits in
the RETE processing (I am assuming Fusion also uses RETE someway)?

Best regards
Orlando.

PS-Does anyone know where can I find more info on the coupling of
Drools Expert and Fusion?
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools Fusion Performance and RETE algorithm

2010-08-17 Thread Orlando Costa

Thanks Mauricio, but since in general RETE algorithm does not get along well
with high volumes of information, I was wondering if I could get more
details on:
1. the implementation architecture
2. about Drools Fusion performance, does anyone has already some experience
or links to share?

Br
Orlando.

-- 
View this message in context: 
http://drools-java-rules-engine.46999.n3.nabble.com/Drools-Fusion-Performance-and-RETE-algorithm-tp1190098p1192480.html
Sent from the Drools - User mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools Fusion Performance and RETE algorithm

2010-08-17 Thread Mauricio Salatino
Google for a presentation that shows how fedex monitor a lot of trucks in
near real time with fusion.
I can't find the link, but probably Edson have it.


On Tue, Aug 17, 2010 at 3:00 PM, Orlando Costa orlandorica...@gmail.comwrote:


 Thanks Mauricio, but since in general RETE algorithm does not get along
 well
 with high volumes of information, I was wondering if I could get more
 details on:
 1. the implementation architecture
 2. about Drools Fusion performance, does anyone has already some experience
 or links to share?

 Br
 Orlando.

 --
 View this message in context:
 http://drools-java-rules-engine.46999.n3.nabble.com/Drools-Fusion-Performance-and-RETE-algorithm-tp1190098p1192480.html
 Sent from the Drools - User mailing list archive at Nabble.com.
 ___
 rules-users mailing list
 rules-users@lists.jboss.org
 https://lists.jboss.org/mailman/listinfo/rules-users




-- 
 - CTO @ http://www.plugtree.com
 - MyJourney @ http://salaboy.wordpress.com
 - Co-Founder @ http://www.jbug.com.ar

 - Salatino Salaboy Mauricio -
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools Fusion Performance and RETE algorithm

2010-08-17 Thread Orlando Costa

Thanks, I already have seen this some days ago:
http://www.redhat.com/f/pdf/jbw/amollenkopf_430_applying_drools.pdf

but it does not say the amount of events coming, and the internals are more
about the whole solution itself than about the internal Drools Expert/Fusion
architecture (though is shows good rules examples with Fusion use of
course).
Br
Orlando.

-- 
View this message in context: 
http://drools-java-rules-engine.46999.n3.nabble.com/Drools-Fusion-Performance-and-RETE-algorithm-tp1190098p1193090.html
Sent from the Drools - User mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools Fusion Performance and RETE algorithm

2010-08-17 Thread Edson Tirelli
Hi Orlando, Mauricio,

While the goal of the whole Drools platform is to provide a seamless
environment for users to model business behavior using rules, processes and
events, it is a misconception to say that it is all executed on RETE.
Besides implementing several optimizations on top of the classic RETE
algorithm (as designed by Dr. Forgy back in the 70's), Drools has specific
algorithms to which it delegates processing of specific use cases/features
(read some fusion and flow features).

Regarding your question, entry-points are partitions on the RETE network
that allow for parts of it to be evaluated concurrently, besides creating
separate name spaces for facts (scopes if you will). So it does help on
reducing the overall load of the matching algorithm. Although, rules are
still fired sequentially as to ensure consistency of the working memory.

Regarding use cases, we have customers that use 24x7 stateful sessions,
keeping over 1M facts in memory constantly, with new facts coming into the
session and facts expiring from the session all the time. The throughput of
such use cases is obviously dependent on the percentage of facts/rules
matchings, so it is hard to foresee what you will achieve on your use case
without knowing in detail your rules.

Although, the chosen architecture for your kbase and sessions will
obviously have a high impact on the performance metrics you will achieve.
Since you mentioned that in your use case every single fact will match and
cause rules to fire, and the actions involve heavy operations like database
access, I would recommend looking into an agent architecture, where you
partition your knowledge base into several kbases with related rules. The
kbases will operate on the atomic (or raw) events and create the composite
events that you can feed into entry points of sessions of subsequent kbases,
effectively increasing the overall system throughput and simplifying the
maintenance of each agent's kbase in particular.

If you are used to CEP nomenclature, you know that the above is a
simplified description of an EPN.

Finally, you asked about the difference between regular facts and
events, and basically all events are facts with special properties. These
properties allow the engine to do some fancy stuff with them, like the use
of sliding windows or event lifecycle management (i.e., automatically
expiring events). Although, there is nothing wrong in modeling events like
regular facts if that best fits your design.

Hope the above helps,
Edson

2010/8/17 Orlando Costa orlandorica...@gmail.com


 Thanks, I already have seen this some days ago:
 http://www.redhat.com/f/pdf/jbw/amollenkopf_430_applying_drools.pdf

 but it does not say the amount of events coming, and the internals are more
 about the whole solution itself than about the internal Drools
 Expert/Fusion
 architecture (though is shows good rules examples with Fusion use of
 course).
 Br
 Orlando.

 --
 View this message in context:
 http://drools-java-rules-engine.46999.n3.nabble.com/Drools-Fusion-Performance-and-RETE-algorithm-tp1190098p1193090.html
 Sent from the Drools - User mailing list archive at Nabble.com.
 ___
 rules-users mailing list
 rules-users@lists.jboss.org
 https://lists.jboss.org/mailman/listinfo/rules-users




-- 
  Edson Tirelli
  JBoss Drools Core Development
  JBoss by Red Hat @ www.jboss.com
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users