We're putting together a prototype in which
the following set of actions will occur up to 100,000 times a minute in a
load-balanced JESS rules engine:
recieve a JMS message with
data,
assert the JMS data as facts
Query a large database for specific facts
relevant to the JMS data
assert the database derived
fact,
run the rule engine
write some into the database
persist some facts in the rule engine
"temporarily"
destroy facts
The design we've come up with relies on
multiple rules engines to performing processing in parallel, with specific rules
engines optimized for specific JMS data sets.
The issues are many:
1) Is there a better way to handle
such large amounts of Fact assertions/desctructions?
2) Is it possible for the Facts to
"live" in the database to save the time it takes to construct them?
3) Is it possible to create a pool of
"blank Facts" that have been constructed, but not initialized, fill them with
primitive data-types from the database, assert them, after the rules engine
runs, remove all the data and return them to the "constructed"
pool?
4) Any ideas would be
welcome.
5) RTFM'd, was a great book.
v/r,
Mike Van
