When I use Hibernate 3.0.GA with TreeCache 1.4.0.SP1 (and 1.4.1.BETA) using a pessimistic cache configuration in local mode I see that a huge amount of time is spent inside the PessimisticLockInterceptor.
I profiled the application and I saw that for a given set of operations that takes 23 seconds, the 98% is spent inside the lock interceptor. The following trace shows that this is because the TransactionTable uses a LinkedList to store the locks and and then it calls contains to find if a lock exists. A more performant collection should be used instead. Here is a part of the trace: org.jboss.cache.interceptors.PessimisticLockInterceptor.invoke(MethodCall) 22.125 98% --org.jboss.cache.interceptors.PessimisticLockInterceptor.lock(Fqn, GlobalTransaction, int, boolean, long, boolean) 21.562 96% ----org.jboss.cache.TransactionTable.addLock(GlobalTransaction, IdentityLock) 21.187 94% ------org.jboss.cache.TransactionEntry.addLock(IdentityLock) 21.187 94% --------java.util.LinkedList.contains(Object) 21.187 94% ----org.jboss.cache.Node.acquire(Object, long, int) 187 1% ----org.jboss.cache.Node.getOrCreatechild(Object, GlobalTransaction, boolean) 187 1% View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3987872#3987872 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3987872 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
