<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3243" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=656232215-25012008><FONT face=Arial size=2>I asked some of
these questions in IRC and tirelli asked me to post here in the dev
list.</FONT></SPAN></DIV>
<DIV><SPAN class=656232215-25012008><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=656232215-25012008><FONT face=Arial size=2>We are hoping that
drools will have this functionality sometime in the future. Our target
production date is May. These questions are related to the Job/Workers
problem that Steve Shabino has discussed with the dev team
before.</FONT></SPAN></DIV>
<DIV><SPAN class=656232215-25012008><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=656232215-25012008><FONT face=Arial size=2>Start w/ steady
state. Facts loaded and rules fired. We have truth as of
time1.<BR>Thread 1 asserts new/updated facts and calls fireAllRules.
fireAllRules takes about 20 seconds to run.<BR>Thread 2 calls getQueryResults
before fireAllRules completes. The returned QueryResults should be correct
and consistent with truth as of time1. Call to getQueryResults should NOT
block until fireAllRules completes.<BR>Thread 1 call to fireAllRules
finishes. We now have truth as of time2.</FONT></SPAN></DIV>
<DIV><SPAN class=656232215-25012008><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=656232215-25012008>
<DIV class=main-item><FONT face=Arial size=2><FONT
color=#000080><</FONT><FONT style="BACKGROUND: #ffffff"
color=#000000>tirelli</FONT><FONT color=#000080>></FONT><FONT
style="BACKGROUND: #ffffff" color=#000000> just as a quick comment: from our
perspective, the support to concurrent query calls would return a consistent
state, but not exactly what you called truth at time1</FONT><BR></FONT><FONT
face=Arial><FONT size=2><FONT color=#000080><</FONT><FONT
style="BACKGROUND: #ffffff" color=#000000>tirelli</FONT><FONT
color=#000080>></FONT><FONT style="BACKGROUND: #ffffff"> since the engine
would be firing rules all the <SPAN
class=656232215-25012008>time</SPAN></FONT></FONT></FONT></DIV>
<DIV class=main-item><FONT style="BACKGROUND: #ffffff" face=Arial size=2><SPAN
class=656232215-25012008></SPAN></FONT> </DIV>
<DIV class=main-item><FONT style="BACKGROUND: #ffffff" face=Arial size=2><SPAN
class=656232215-25012008>We do have a workaround if our desired behavior isn't
"correct." The queries we'll need to run are well defined and a relatively
small number. Speaking in the Job/Worker realm, we'll need to query for
the TopWorkers for all Jobs. We could keep a map of Job to TopWorkers and
update the map every time fireAllRules completes and service all TopWorker by
Job queries from this cache.</SPAN></FONT></DIV>
<DIV class=main-item><FONT style="BACKGROUND: #ffffff" face=Arial size=2><SPAN
class=656232215-25012008></SPAN></FONT> </DIV>
<DIV class=main-item><FONT style="BACKGROUND: #ffffff" face=Arial size=2><SPAN
class=656232215-25012008>Maybe the bigger question, but maybe not appropriate
for the dev list, is our concern about query results possibly changing while
fireAllRules runs valid? Our concern is that we could get different
results depending on when we perform the query. For example, if we query
for TopWorkers for a Job against "truth @ time1" and "truth @ time2" our results
should be well defined. However if we perform the same query while
fireAllRules is running we might get results that are different from both those
other results. Is this a valid concern?</SPAN></FONT></DIV>
<DIV class=main-item><FONT style="BACKGROUND: #ffffff" face=Arial size=2><SPAN
class=656232215-25012008></SPAN></FONT> </DIV>
<DIV class=main-item><FONT style="BACKGROUND: #ffffff" face=Arial size=2><SPAN
class=656232215-25012008>Thanks for your time.</SPAN></FONT></DIV>
<DIV class=main-item><FONT style="BACKGROUND: #ffffff" face=Arial size=2><SPAN
class=656232215-25012008></SPAN></FONT> </DIV>
<DIV class=main-item><FONT style="BACKGROUND: #ffffff" face=Arial size=2><SPAN
class=656232215-25012008>Eric</SPAN></FONT></DIV></SPAN></DIV></BODY></HTML>