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

Reply via email to