To echo this point -- if you've got a wide number of rulesets, but some of them are used frequently and others less so, you could certainly cache rulebases with something like a least-recently-used cache expiration strategy.
If, on the other hand, you have tons of rulesets which are used equally infrequently, this won't get you a lot, and some of the other strategies listed below may be worth investigating. I can't answer them in detail, although my recollection is that Drools 2.5 will support compiling rules to a JAR before deployment, which might give you what you desire. On 2/22/06, 宋宇彬 <[EMAIL PROTECTED]> wrote: > > > it's similar to obtain data from a table with lots of record, i think the > point to solve this problem focus on the strategy how to improve the hit > point of ur cache. > There are many strategies ,such as hibernate,jive..., can sufficiently > handle data cache. > In the same time, not to cache the ruleset, since the parse process is a > time wasting process.Try to cache the rule base instead of rule set, u > will improve ur system dramatically! > > -----邮件原件----- > 发件人: Marcelo Tallis [mailto:[EMAIL PROTECTED] > 发送时间: 2006年2月23日 10:30 > 收件人: [email protected] > 主题: [drools-user] Dealing with a massive number of rulesets > > We want to implement a web service. We have a massive number of rulesets > stored in a DB (too many to have them all loaded in memory at once). The > rulesets are very simple and involve only a couple of dozens rules each. We > receive (let say) millions of requests a day from clients. Different > requests may require different rulesets. For every request: we load the > required ruleset, update some facts in working memory, fireAllRules, and > respond within a user tolerable response time. > > Question: > > What kind of tricks can we use to minimize the time to set up the > execution of a rule set? Having to parse the rule set, compile it, set up > the working memory, etc. for every request seems too expensive. > > For example: > > - Can we store serialized rulesets in a DB? How? > > - Can we avoid the compilation of the java snippets in the rules each > time we load (or de-serialize) a ruleset? Is this compilation time > significant? > > - Would a domain specific language (one for all rulesets) save us some > significant compilation time? > > Thanks, > > Marcelo > > > > ******************************************************************************************************************************** > The information in this email is confidential and may be legally > privileged. If you have received this email in error or are > not the intended recipient, please immediately notify the sender and > delete this message from your computer. Any use, distribution, > or copying of this email other than by the intended recipient is strictly > prohibited. All messages sent to and from us may be > monitored to ensure compliance with internal policies and to protect our > business. > Emails are not secure and cannot be guaranteed to be error free as they > can be intercepted, amended, lost or destroyed, > or contain viruses. Anyone who communicates with us by email is taken to > accept these risks. > > 收发邮件者请注意: > 本邮件含保密信息,若误收本邮件,请务必通知发送人并直接删去,不得使用、传播或复制本邮件。 > 进出邮件均受到本公司合规监控。邮件可能发生被截留、被修改、丢失、被破坏或包含计算机病毒等不安全情况。 > > ******************************************************************************************************************************** > -- Geoffrey Wiseman
