This is the JIRA to improve scalability: https://issues.jboss.org/browse/GUVNOR-1635
Otherwise I would still recommend splitting your monolithic DRL file into smaller ones and upload each individually. Increasing your web-server time-out is also an option. 2012/1/16 Shweta1986 <[email protected]> > Can someone please look into this. Would really appreciate some help with > these questions. > > 2012/1/11 Shweta Turakhia <[hidden > email]<http://user/SendEmail.jtp?type=node&node=3664475&i=0> > > > >> Thanks for your replies. Please see my response inline >> My intention to use guvnor was to let non technical person go and change >> the rules. But due to the size of the file and drl format it is difficult >> for them to first search the rule and then edit it, save it and build it. >> >> Also since now my rules are in drl format there is no easy way to convert >> them to excel format. Since that will make the file smaller with just 20K >> rows which can be easily uploaded. >> Please suggest. >> >> >> "Thousands" of lines of DRL in a single file represent an issue not just >> to Guvnor but to anything handling it. >> >> Agreed. But if you provide a way to upload drl file as it is it >> would not be that bad right? >> >> The recommendation would be to split the DRL into individual rules, >> resulting of thousands of assets in Guvnor. >> >> This takes more than 20 minutes and times out. >> >> >> The next question would be if you have "thousands" of similar rules why >> not use a singe Template or Decision Table? >> Having said that, using a Template or Decision table in Guvnor with >> "thousands" of rows could exhibit a problem at present. >> Both of the editors in Guvnor do not scale well past a few thousand. This >> is a known issue and we have an open item to address given time. >> >> Can you please point me to the jira item for this ? I would like to >> look into it. >> >> Using an Excel based decision table loaded into Guvnor would be workable, >> however the compilation time to build a binary package may be an issue (I >> don't know). >> >> For me 20K rules got saved once but they never got built. I always get >> "Network error" It times out since the browser is idle for more time. >> >> >> 1) Guvnor needs more that 2.5GB Ram => Go to 64 bits java (we have 5GB >> heap) >> 2) Building the binary on guvnor on a virtual environment takes a few >> minutes (4 minutes in our case) >> >> For me build fails as mentioned earlier. It says "Network" error" I >> never got this error when my rules were 100. With number of rules >> increasing I think it takes more time to build and on the UI it times out. >> >> 3) For the runtime, the rulebase to build is less then 1 minute when >> getting the rulebase from guvnor >> 4) We are using decision tables updated from remote, so to view them the >> only way is to download via rest the decision table xml et edit it. >> >> Is there any documentation available as how to do this ? >> >> 5) Performance are excellent, for one session execution, it takes 250 ms >> to apply 300 rules again in a virtual environement. >> >> I agree for me it is less than 100 ms for each request. But since I am >> using the Resource Change Scanner whenever my rules change the response >> time increases to 40 seconds for 15 minutes and comes back to normal after >> that. I also had to increase the heap size for my application to 3GB >> otherwise it was having memory issues due to the number of rules in memory. >> >> >> 2012/1/11 Nicolas Héron [via Drools] <[hidden >> email]<http://user/SendEmail.jtp?type=node&node=3664475&i=1> >> > >> >> Hello, >>> I just worked on a drools project with many thousands rules (100k). The >>> project is now in production. >>> the issues are : >>> 1) Guvnor needs more that 2.5GB Ram => Go to 64 bits java (we have 5GB >>> heap) >>> 2) Building the binary on guvnor on a virtual environment takes a few >>> minutes (4 minutes in our case) >>> 3) For the runtime, the rulebase to build is less then 1 minute when >>> getting the rulebase from guvnor >>> 4) We are using decision tables updated from remote, so to view them the >>> only way is to download via rest the decision table xml et edit it. >>> 5) Performance are excellent, for one session execution, it takes 250 ms >>> to apply 300 rules again in a virtual environement. >>> I would like to know which JIRA is related to the issues in guvnor when >>> there are many lines ? >>> Regards >>> Nicolas Héron >>> >>> 2012/1/11 Michael Anstis <[hidden >>> email]<http://user/SendEmail.jtp?type=node&node=3650237&i=0> >>> > >>> >>> "Thousands" of lines of DRL in a single file represent an issue not just >>>> to Guvnor but to anything handling it. >>>> >>>> The recommendation would be to split the DRL into individual rules, >>>> resulting of thousands of assets in Guvnor. >>>> >>>> The next question would be if you have "thousands" of similar rules why >>>> not use a singe Template or Decision Table? >>>> >>>> Having said that, using a Template or Decision table in Guvnor with >>>> "thousands" of rows could exhibit a problem at present. >>>> >>>> Both of the editors in Guvnor do not scale well past a few thousand. >>>> This is a known issue and we have an open item to address given time. >>>> >>>> Using an Excel based decision table loaded into Guvnor would be >>>> workable, however the compilation time to build a binary package may be an >>>> issue (I don't know). >>>> >>>> 2012/1/10 Shweta1986 <[hidden >>>> email]<http://user/SendEmail.jtp?type=node&node=3650237&i=1> >>>> > >>>> >>>> I can look into the solution of writing my own Java application for >>>>> this solution. But I would still like to understand, if the problem is >>>>> just >>>>> because of the 3 values being checked in the rules ? Do complex rules dont >>>>> have more than 1 checks ? >>>>> If yes then this case should be supported no matter how simple the >>>>> rule is right ? >>>>> >>>>> Also for the UI issue I mentioned. Assume some other complex rules. Is >>>>> copying the thousands of lines in the text area not a problem in guvnor ? >>>>> >>>>> On Tue, Jan 10, 2012 at 12:38 PM, laune [via Drools] <[hidden >>>>> email]<http://user/SendEmail.jtp?type=node&node=3649201&i=0> >>>>> > wrote: >>>>> >>>>>> Assuming that the remaining 19998 rules are of the same kind, there >>>>>> is a lot of data in these rules, and only very little logic. Ignoring the >>>>>> issue of "Olympia" being one of the cities not being "Seattle", we have >>>>>> the >>>>>> problem of matching a triplet of <field,state,city> from a Student fact >>>>>> so >>>>>> that we can store one or more Subjects in Student.subjects. >>>>>> >>>>>> Imagine that you have objects of type Inscribe containing a triplet >>>>>> of field, state, city and the pertaining List<Subject>. Then you could >>>>>> write a single (!) rule >>>>>> >>>>>> rule register >>>>>> when >>>>>> $stu: Student ( $f: field, $s: state, $c: city ) >>>>>> $ins: Inscribe( field==$f, state==$s, city==$c ) >>>>>> then >>>>>> $stu.setSubjects( $ins.getSubjects() ); >>>>>> end >>>>>> >>>>>> BTW: Why do you use equals with state? Using "==" should be possible >>>>>> here, too. >>>>>> >>>>>> And, of course, matching ~20000 different triplets to facts of a >>>>>> single type isn't really RBS fodder. You can design a simple Java program >>>>>> that achieves this goal, assuming you can come up with a straightforward >>>>>> representation of the <field,state,city;subject+> mapping. >>>>>> >>>>>> -W >>>>>> >>>>>> >>>>>> 2012/1/10 Shweta1986 <[hidden >>>>>> email]<http://user/SendEmail.jtp?type=node&node=3648792&i=0> >>>>>> > >>>>>> >>>>>> My rules are as follows. >>>>>>> >>>>>>> rule "rule1" >>>>>>> salience -2 >>>>>>> dialect "mvel" >>>>>>> when >>>>>>> stud : Student ( field == "ARTS", state.equals("WA")) >>>>>>> then >>>>>>> java.util.List subList = new java.util.ArrayList(); >>>>>>> Subject subject = new Subject(); >>>>>>> subject.setName("ABC"); >>>>>>> subject.setFees(33454); >>>>>>> subject.duration(4); >>>>>>> subList.add(subject); >>>>>>> >>>>>>> subject = new Subject(); >>>>>>> subject.setName("XYZ"); >>>>>>> subject.setFees(33454); >>>>>>> subject.duration(4); >>>>>>> subList.add(subject); >>>>>>> >>>>>>> stud.setSubjects(subList); >>>>>>> end >>>>>>> rule "rule2" >>>>>>> salience -100 >>>>>>> dialect "mvel" >>>>>>> when >>>>>>> stud : Student ( field == "ARTS", state.equals("WA") , city == >>>>>>> "SEATTLE")) >>>>>>> then >>>>>>> java.util.List subList = new java.util.ArrayList(); >>>>>>> Subject subject = new Subject(); >>>>>>> subject.setName("ABC"); >>>>>>> subject.setFees(33454); >>>>>>> subject.duration(4); >>>>>>> subList.add(subject); >>>>>>> >>>>>>> subject = new Subject(); >>>>>>> subject.setName("XYZ"); >>>>>>> subject.setFees(33454); >>>>>>> subject.duration(4); >>>>>>> subList.add(subject); >>>>>>> >>>>>>> stud.setSubjects(subList); >>>>>>> end >>>>>>> >>>>>>> >>>>>>> >>>>>>> Student is the main object and it contains List of Subjects. here >>>>>>> the way I am using the salience because >>>>>>> if the input us shweta, ARTS, WA,Olympia it matched rule1 >>>>>>> but if the input is shweta, ARTS, WA, Seattle it matches 1 and 2 but >>>>>>> i want the rule 2 to be executed so salience. >>>>>>> >>>>>>> I am using StatelessKnowledge Session and also the resource change >>>>>>> scanner. >>>>>>> I execute one rule at a time and the scanner poll interval is 1 hour. >>>>>>> When I started with 100 rules I was using "PK" as my source in >>>>>>> changeSet.xml but when the rules grew to 20K I was not able to build the >>>>>>> rules in Guvnor UI and hence I started using "DRL" as source. >>>>>>> >>>>>>> The way I generate drl is using a script which converts the csv to >>>>>>> drl format. >>>>>>> I copy the drl to the text area in techincal rules and save it. ( >>>>>>> this copy is also paiful so I asked that if there is an upload drl file >>>>>>> unlike the import drl file) >>>>>>> In changeset I give the path to the url in webdav >>>>>>> /guvnor/org.drools.guvnor.Guvnor/webdav/packages/StudentRules/StudentRules.drl >>>>>>> >>>>>>> I am not sure if I am doing it the right way. Please suggest. >>>>>>> >>>>>>> Thanks, >>>>>>> Shweta >>>>>>> >>>>>>> On Mon, Jan 9, 2012 at 11:58 PM, laune [via Drools] <[hidden >>>>>>> email]<http://user/SendEmail.jtp?type=node&node=3648661&i=0> >>>>>>> > wrote: >>>>>>> >>>>>>>> Salience is just one way to force the evaluation of a condition >>>>>>>> before others. In fact, using salience throughout is just a way of >>>>>>>> re-creating a sequence of plain old if statements using a rules engine. >>>>>>>> >>>>>>>> I'm not going to waste my time and yours by elaborating on possible >>>>>>>> alternatives unless you come up with a detailed description of your >>>>>>>> rules, >>>>>>>> and how you run your rules engine: fact insertion, calls to fire, etc. >>>>>>>> >>>>>>>> -W >>>>>>>> >>>>>>>> 2012/1/10 Shweta1986 <[hidden >>>>>>>> email]<http://user/SendEmail.jtp?type=node&node=3647015&i=0> >>>>>>>> > >>>>>>>> >>>>>>>>> I am not sure I understand that. What is the other option for this >>>>>>>>> case. Why would simple rules not work for 20 K rules. Am I missing >>>>>>>>> something. I cannot use database to store my rules. Drools also gives >>>>>>>>> me >>>>>>>>> salience which I need for my usecase. >>>>>>>>> >>>>>>>>> On Thu, Jan 5, 2012 at 11:29 PM, laune [via Drools] <[hidden >>>>>>>>> email] <http://user/SendEmail.jtp?type=node&node=3646449&i=0>>wrote: >>>>>>>>> >>>>>>>>>> 2012/1/6 Shweta1986 <[hidden >>>>>>>>>> email]<http://user/SendEmail.jtp?type=node&node=3637255&i=0> >>>>>>>>>> > >>>>>>>>>> >>>>>>>>>>> And my rules are very simple it is like if string comparison >>>>>>>>>>> then set that's it.. >>>>>>>>>>> >>>>>>>>>> This doesn't really warrant the use of a rule based system. If >>>>>>>>>> keeping this logic out of the application or an easy maintenance of >>>>>>>>>> these >>>>>>>>>> if-then's are your main goals, there are other ways. I've already >>>>>>>>>> hinted at >>>>>>>>>> this, with the idea of providing the information embedded in similar >>>>>>>>>> rules >>>>>>>>>> as data. >>>>>>>>>> -W >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> rules-users mailing list >>>>>>>>>> [hidden email]<http://user/SendEmail.jtp?type=node&node=3637255&i=1> >>>>>>>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> ------------------------------ >>>>>>>>>> If you reply to this email, your message will be added to the >>>>>>>>>> discussion below: >>>>>>>>>> >>>>>>>>>> http://drools.46999.n3.nabble.com/Large-number-of-rules-in-Drools-tp3630385p3637255.html >>>>>>>>>> To start a new topic under Drools: User forum, email [hidden >>>>>>>>>> email] <http://user/SendEmail.jtp?type=node&node=3646449&i=1> >>>>>>>>>> To unsubscribe from Drools: User forum, click here. >>>>>>>>>> NAML<http://drools.46999.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.InstantMailNamespace&breadcrumbs=instant+emails%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> ------------------------------ >>>>>>>>> View this message in context: Re: [rules-users] Large number of >>>>>>>>> rules in >>>>>>>>> Drools<http://drools.46999.n3.nabble.com/Large-number-of-rules-in-Drools-tp3630385p3646449.html> >>>>>>>>> >>>>>>>>> Sent from the Drools: User forum mailing list >>>>>>>>> archive<http://drools.46999.n3.nabble.com/Drools-User-forum-f47000.html>at >>>>>>>>> Nabble.com. >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> rules-users mailing list >>>>>>>>> [hidden email]<http://user/SendEmail.jtp?type=node&node=3647015&i=1> >>>>>>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> rules-users mailing list >>>>>>>> [hidden email]<http://user/SendEmail.jtp?type=node&node=3647015&i=2> >>>>>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>>>>>> >>>>>>>> >>>>>>>> ------------------------------ >>>>>>>> If you reply to this email, your message will be added to the >>>>>>>> discussion below: >>>>>>>> >>>>>>>> http://drools.46999.n3.nabble.com/Large-number-of-rules-in-Drools-tp3630385p3647015.html >>>>>>>> To start a new topic under Drools: User forum, email [hidden >>>>>>>> email] <http://user/SendEmail.jtp?type=node&node=3648661&i=1> >>>>>>>> To unsubscribe from Drools: User forum, click here. >>>>>>>> NAML<http://drools.46999.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.InstantMailNamespace&breadcrumbs=instant+emails%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> ------------------------------ >>>>>>> View this message in context: Re: [rules-users] Large number of >>>>>>> rules in >>>>>>> Drools<http://drools.46999.n3.nabble.com/Large-number-of-rules-in-Drools-tp3630385p3648661.html> >>>>>>> Sent from the Drools: User forum mailing list >>>>>>> archive<http://drools.46999.n3.nabble.com/Drools-User-forum-f47000.html>at >>>>>>> Nabble.com. >>>>>>> >>>>>>> _______________________________________________ >>>>>>> rules-users mailing list >>>>>>> [hidden email]<http://user/SendEmail.jtp?type=node&node=3648792&i=1> >>>>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>>>>> >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> rules-users mailing list >>>>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=3648792&i=2> >>>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>>>> >>>>>> >>>>>> ------------------------------ >>>>>> If you reply to this email, your message will be added to the >>>>>> discussion below: >>>>>> >>>>>> http://drools.46999.n3.nabble.com/Large-number-of-rules-in-Drools-tp3630385p3648792.html >>>>>> To start a new topic under Drools: User forum, email [hidden >>>>>> email]<http://user/SendEmail.jtp?type=node&node=3649201&i=1> >>>>>> To unsubscribe from Drools: User forum, click here. >>>>>> NAML<http://drools.46999.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.InstantMailNamespace&breadcrumbs=instant+emails%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >>>>>> >>>>> >>>>> >>>>> ------------------------------ >>>>> View this message in context: Re: [rules-users] Large number of rules >>>>> in >>>>> Drools<http://drools.46999.n3.nabble.com/Large-number-of-rules-in-Drools-tp3630385p3649201.html> >>>>> Sent from the Drools: User forum mailing list >>>>> archive<http://drools.46999.n3.nabble.com/Drools-User-forum-f47000.html>at >>>>> Nabble.com. >>>>> >>>>> _______________________________________________ >>>>> rules-users mailing list >>>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=3650237&i=2> >>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> rules-users mailing list >>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=3650237&i=3> >>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>> >>>> >>> >>> _______________________________________________ >>> rules-users mailing list >>> [hidden email] <http://user/SendEmail.jtp?type=node&node=3650237&i=4> >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> Nicolas Héron >>> >>> >>> ------------------------------ >>> If you reply to this email, your message will be added to the >>> discussion below: >>> >>> http://drools.46999.n3.nabble.com/Large-number-of-rules-in-Drools-tp3630385p3650237.html >>> To start a new topic under Drools: User forum, email [hidden >>> email]<http://user/SendEmail.jtp?type=node&node=3664475&i=2> >>> To unsubscribe from Drools: User forum, click here. >>> NAML<http://drools.46999.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.InstantMailNamespace&breadcrumbs=instant+emails%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >>> >> >> > > ------------------------------ > View this message in context: Re: [rules-users] Large number of rules in > Drools<http://drools.46999.n3.nabble.com/Large-number-of-rules-in-Drools-tp3630385p3664475.html> > Sent from the Drools: User forum mailing list > archive<http://drools.46999.n3.nabble.com/Drools-User-forum-f47000.html>at > Nabble.com. > > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > >
_______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
