Details
-
Improvement
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
1.6, 1.6.1, 1.5.8, 1.6.2, 1.6.3
-
None
-
None
-
Linux, Java 1.6, Tomcat
Description
Sscalability seems to suffer as a result of TagLibs being implemented as singletons and locking occurring on ExpandoMetaClass.isModified() when the server is processing multiple requests concurrently.
Performance is fine when there is a small number of concurrent requests, but as the number of concurrent requests increases response times increase dramatically.
Locking was noticed by profiling a running application using Your Kit Java Profiler and JMeter to simulate load.
More details are available here:
http://digitalmorphosis.blogspot.com/2009/05/grails-scalability.html
Obvious fix would be to create new instances of taglibs for each request/thread, but not sure what side effects this would have?