[Contrib: Evaluation System] provider not being called

Charles Hedrick hedrick at rutgers.edu
Tue Sep 28 10:51:45 PDT 2010


You might want to take a look at this: https://forum.hibernate.org/viewtopic.php?p=2404654.  It suggests setting the data to readonly. However a factor of 5 speedup, while welcome, woudln't come close to giving usable performance for this.

I think we'd do better going directly to our providers than using the snapshots, because our providers do real database queries, not GenericDao/Hibernate. I have yet to be convinced that Hibernate isn't a Satanic plot...


On Sep 28, 2010, at 1:21 PM, Charles Hedrick wrote:

> I should have given a fuller backtrace. Here it is. It's always in Class.getInterfaces. It's called from either countEvaluationGroups or getTitleForFirstEvalGroup in this:
> 
>         int groupsCount = evaluationService.countEvaluationGroups(evaluation.getId(), false);
>             if (groupsCount == 1) {
>                UIInternalLink.make(evaluationRow, "inqueue-eval-assigned-link", getTitleForFirstEvalGroup(evaluation.getId()),
>                      new EvalViewParameters(EvaluationAssignmentsProducer.VIEW_ID, evaluation.getId()) );
> 
> This may well work for users, but with this screen unusable it's really hard to manage the system. This is significantly worse performance than in the old version. Perhaps we need to bypass hibernate for some of the queries?
> 
> java.lang.Class.getInterfaces(Native Method)
> org.hibernate.intercept.FieldInterceptionHelper.extractFieldInterceptor(FieldInterceptionHelper.java:45)
> org.hibernate.intercept.FieldInterceptionHelper.clearDirty(FieldInterceptionHelper.java:81)
> org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:209)
> org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:127)
> org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:196)
> org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
> org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:35)
> org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:970)
> org.hibernate.impl.SessionImpl.list(SessionImpl.java:1563)
> org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
> org.springframework.orm.hibernate3.HibernateTemplate$36.doInHibernate(HibernateTemplate.java:1065)
> org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
> org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
> org.springframework.orm.hibernate3.HibernateTemplate.findByCriteria(HibernateTemplate.java:1055)
> org.springframework.orm.hibernate3.HibernateTemplate.findByCriteria(HibernateTemplate.java:1048)
> org.sakaiproject.genericdao.hibernate.HibernateBasicGenericDao.baseCountBySearch(HibernateBasicGenericDao.java:144)
> org.sakaiproject.genericdao.hibernate.HibernateBasicGenericDao.countBySearch(HibernateBasicGenericDao.java:197)
> sun.reflect.GeneratedMethodAccessor991.invoke(Unknown Source)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> java.lang.reflect.Method.invoke(Method.java:597)
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
> $Proxy12.countBySearch(Unknown Source)
> org.sakaiproject.evaluation.logic.EvalEvaluationServiceImpl.countEvaluationGroups(EvalEvaluationServiceImpl.java:622)
> sun.reflect.GeneratedMethodAccessor1147.invoke(Unknown Source)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> java.lang.reflect.Method.invoke(Method.java:597)
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
> $Proxy49.countEvaluationGroups(Unknown Source)
> org.sakaiproject.evaluation.tool.producers.ControlEvaluationsProducer.fillComponents(ControlEvaluationsProducer.java:235)
> uk.org.ponder.rsf.view.support.ViewCollector.fillComponents(ViewCollector.java:56)
> uk.org.ponder.rsf.view.support.LayoutCollector.fillComponents(LayoutCollector.java:68)
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/evaluation/attachments/20100928/2dd37569/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2669 bytes
Desc: not available
Url : http://collab.sakaiproject.org/pipermail/evaluation/attachments/20100928/2dd37569/attachment.bin 


More information about the evaluation mailing list