[rules-users] Jbilling Drools performance

Greg Barton greg_barton at yahoo.com
Fri May 14 14:51:08 EDT 2010


Right off the bat I'd say try to get rid of the eval usage.  Can you put the phone number into an object like this:

class PhoneNumber {
  private char digit0;
  private char digit1;
  ///...same for the rest of the digits

  public char getDigit0() { return digit0; }

  public char getDigit1() { return digit1; }
}

Then the conditions would look like this:

digit0 == '$param'

Behind the scenes hopefully this will optimize better.  The use of eval won't optimize well.

Are you using sequential mode?  This might be a good candidate for that if setting the price does not trigger any other rules to fire.

--- On Fri, 5/14/10, Antonio Anderson Souza <antonioams at gmail.com> wrote:

From: Antonio Anderson Souza <antonioams at gmail.com>
Subject: [rules-users] Jbilling Drools performance
To: "Drools Users Mailing list" <rules-users at lists.jboss.org>
Date: Friday, May 14, 2010, 1:28 PM

Dear All,

I'm deploying  a JBilling using Drools in a Telecom Carrier in Brazil, and I'm using Decision tables in xls files to execute the pricing, my pricing table has about 40.000 rules, and I'm getting a terrible performance about 1.5 minute to execute the price of each CDR (Call Detail Record) mediated.





Follow bellow a small piece of my decision table:





	
	
	
	
	
	


	
	
		
			RuleTable Padrao
			

			

			

			

			

			

			

			

			

			

			

			

			

			

			

		
		
			CONDITION




			CONDITION
			ACTION
			PRIORITY 
		
		
			PricingField




			PricingManager
			manager
			salience
		
		
			name
			eval (strValue.charAt(0) == '$param')
			eval (strValue.charAt(1) == '$param')
			eval (strValue.charAt(2) == '$param')
			eval (strValue.charAt(3) == '$param')
			eval (strValue.charAt(4) == '$param')
			eval (strValue.charAt(5) == '$param')
			eval (strValue.charAt(6) == '$param')
			eval (strValue.charAt(7) == '$param')
			eval (strValue.charAt(8) == '$param')
			eval (strValue.charAt(9) == '$param')
			eval (strValue.charAt(10) == '$param')
			eval (strValue.charAt(11) == '$param')
			itemId
			setPrice($param)
			

		
		
			Campo
			Digito1
			Digito2
			Digito3
			Digito4
			Digito5
			Digito6
			Digito7
			Digito8
			Digito9
			Digito10
			Digito11
			Digito12
			ID do Item
			Preço
			Ordem
		
		
			destinationnumber
			5
			5
			1
			1
			3
			5
			8
			8
			0
			1
			8
			8
			300
			0.00000
			1
		
		
			destinationnumber
			5
			5
			1
			1
			3
			5
			8
			8
			0
			1
			8
			7
			300
			0.00000
			2
		
		
			destinationnumber
			5
			5
			1
			1
			3
			5
			8
			8
			0
			1
			8
			6
			300
			0.00000
			3
		
		
			destinationnumber
			5
			5
			1
			1
			3
			5
			8
			8
			0
			1
			8
			5
			300
			0.00000
			4
		
		
			destinationnumber
			5
			5
			1
			1
			3
			5
			8
			8
			0
			1
			8
			4
			300
			0.00000
			5
		
		
			destinationnumber
			5
			5
			1
			1
			3
			5
			8
			8
			0
			1
			8
			3
			300
			0.00000
			6
		
		
			destinationnumber
			5
			5
			1
			1
			3
			5
			8
			8
			0
			1
			8
			2
			300
			0.00000
			7
		
		
			destinationnumber
			5
			5
			1
			1
			

			

			

			

			

			

			

			

			300
			0.40000
			8
		
	



Is it normal? Are there somebody using Jbilling in a similar way? Does anybody can help me?

Best regards,

Antonio Anderson Souza
Voice Technology
http://www.antonioams.com










-----Inline Attachment Follows-----

_______________________________________________
rules-users mailing list
rules-users at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100514/e8596122/attachment.html 


More information about the rules-users mailing list