You could indeed pool Fact objects; once a jess.Fact object is retracted, you can re-populate its slots and assert it again. I would be surprised to find that this improved performance for you, though.
If there's any kind of "clustering" in the JMS data, then it could make sense to use backward chaining to pull database info in only as needed; the clustering would mean that over time the most frequently used data from the database would already be in working memory. I think Mike L. VanGeertruy wrote: [Charset iso-8859-1 unsupported, filtering to ASCII...] > 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 --------------------------------------------------------- Ernest Friedman-Hill Advanced Software Research Phone: (925) 294-2154 Sandia National Labs FAX: (925) 294-2234 PO Box 969, MS 9012 [EMAIL PROTECTED] Livermore, CA 94550 http://herzberg.ca.sandia.gov -------------------------------------------------------------------- To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]' in the BODY of a message to [EMAIL PROTECTED], NOT to the list (use your own address!) List problems? Notify [EMAIL PROTECTED] --------------------------------------------------------------------
