<tirelli> 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
<tirelli> since the engine
would be firing rules all the time
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.
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?
Thanks for your time.
Eric