<!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>&nbsp;</DIV>
<DIV><SPAN class=656232215-25012008><FONT face=Arial size=2>We are hoping that 
drools will have this functionality sometime in the future.&nbsp; Our target 
production date is May.&nbsp; 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>&nbsp;</DIV>
<DIV><SPAN class=656232215-25012008><FONT face=Arial size=2>Start w/ steady 
state.&nbsp; Facts loaded and rules fired.&nbsp; We have truth as of 
time1.<BR>Thread 1 asserts new/updated facts and calls fireAllRules.&nbsp; 
fireAllRules takes about 20 seconds to run.<BR>Thread 2 calls getQueryResults 
before fireAllRules completes.&nbsp; The returned QueryResults should be correct 
and consistent with truth as of time1.&nbsp; Call to getQueryResults should NOT 
block until fireAllRules completes.<BR>Thread 1 call to fireAllRules 
finishes.&nbsp; We now have truth as of time2.</FONT></SPAN></DIV>
<DIV><SPAN class=656232215-25012008><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=656232215-25012008>
<DIV class=main-item><FONT face=Arial size=2><FONT 
color=#000080>&lt;</FONT><FONT style="BACKGROUND: #ffffff" 
color=#000000>tirelli</FONT><FONT color=#000080>&gt;</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>&lt;</FONT><FONT 
style="BACKGROUND: #ffffff" color=#000000>tirelli</FONT><FONT 
color=#000080>&gt;</FONT><FONT style="BACKGROUND: #ffffff"> since the engine 
would be firing rules all the&nbsp;<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>&nbsp;</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."&nbsp; The queries we'll need to run are well defined and a relatively 
small number.&nbsp; Speaking in the Job/Worker realm, we'll need to query for 
the TopWorkers for all Jobs.&nbsp; 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>&nbsp;</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?&nbsp; Our concern is that we could get different 
results depending on when we perform the query.&nbsp; For example, if we query 
for TopWorkers for a Job against "truth @ time1" and "truth @ time2" our results 
should be well defined.&nbsp; However if we perform the same query while 
fireAllRules is running we might get results that are different from both those 
other results.&nbsp; 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>&nbsp;</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>&nbsp;</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>