[rules-users] Multi-threading inefficiency caused by static class synchronization?

ping jinpingv at hotmail.com
Mon Dec 10 15:11:34 EST 2012


hi, 
I'm new to Drools and I'm doing some performance benchmark to see if I can
scale up a StatelessSession engine. I did the benchmark on a 8 core machine
but the results shows the engine can only take advantage of 1.5 cores at any
time. 
here is my tests: 
1. create a KnowledgeBase 
2. started multiple threads (I tried 4/8/16 threads) running same loop:
create a stateless session from KnowledgeBase and create a new fact, then
insert the fact into the session. 

After running the test for multiple times I found that it can only utilize
at most 1.5 cores at the same time. 
I also found that most of time threads were blocked by static class locks
like: 
public static synchronized ProcessRuntimeFactoryService
getProcessRuntimeFactoryService() 


Anyone has experience scaling up a stateless drools engine? 

Thanks a lot. 

-Ping



--
View this message in context: http://drools.46999.n3.nabble.com/Multi-threading-inefficiency-caused-by-static-class-synchronization-tp4021160.html
Sent from the Drools: User forum mailing list archive at Nabble.com.


More information about the rules-users mailing list