[Building Sakai] is anyone using Samigo auto submit?

Karen Tsao ktsao at stanford.edu
Fri Feb 15 16:09:42 PST 2013


I just created one: https://jira.sakaiproject.org/browse/SAM-2063

Thanks,
Karen

On Fri, Feb 15, 2013 at 12:36 PM, Neal Caidin <
nealcaidin at sakaifoundation.org> wrote:

> Hi All,
>
> Is there a Jira for this one?
>
> Thanks,
> Neal
>
> On Feb 15, 2013, at 2:06 PM, Karen Tsao <ktsao at stanford.edu> wrote:
>
> Hi Charles,
>
> Actually we just notice the performance issue around two weeks ago. We are
> going to add one more condition to the query:
>
> sam_assessmentgrading_t.isautosubmit <> 1
>
> I need more testing but I think this should increase the performance.
>
> We implemented this as Quartz job because we expected it to run for a
> while. However, at Stanford, the Quartz job doesn't take that long. Do you
> have most data with SAM_PUBLISHEDACCESSCONTROL_T.autosubmit = 1? As it is
> default to 0, do you think this change is made by instructors purposely or
> your admin turn auto submission on in the default template (so all the
> assessments created with auto submission =1, but instructors might not
> actually need it)? We only have small portion of assessments with auto
> submission on.
>
> But, anyway, I think my above change should improve the performance. I
> will let you know when I am done.
>
> Thanks,
> Karen
>
>
> On Fri, Feb 15, 2013 at 5:10 AM, Hedrick Charles <hedrick at rutgers.edu>wrote:
>
>> There's an option in Samigo to auto submit saved assessments at the due
>> date. Is anyone using it? I tried turning it on, but the Quartz job to do
>> the submit has been running for more than 12 hours so far. That might be OK
>> if that's only the first time, but I see no reason to think it will do
>> better next time. But it looks to me like it will process the same very
>> large set of submissions each time:
>>
>> The test checks for
>>     current time >= retract date
>>     status not in 4,5
>>     autosubmit = 1
>>
>> It shouldn't do anything unless forgrade != 1, and submitting sets it to
>> 1, so it doesn't look like it will actually process anything twice, but it
>> looks to me like each time it runs it will continue look at a huge number
>> of assessments. In a system of our size I wonder whether this is practical.
>>
>> Here's a backtrace of what it's doing now. It looks to me like to be
>> practical this job may need to be recoded in SQL, not hibernate.
>>
>> Main display <https://sakai-prod3.oirt.rutgers.edu/threads.jsp>
>>
>> "QuartzScheduler_Worker-1" Id=27 RUNNABLE
>>
>> java.lang.Class.getInterfaces(Native Method)
>> org.hibernate.intercept.FieldInterceptionHelper.isInstrumented(FieldInterceptionHelper.java:27)
>> org.hibernate.intercept.FieldInterceptionHelper.isInstrumented(FieldInterceptionHelper.java:38)
>> org.hibernate.engine.EntityEntry.requiresDirtyCheck(EntityEntry.java:221)
>> org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:118)
>> 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:1115)
>> org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>> org.sakaiproject.tool.assessment.facade.ItemFacadeQueries$7.doInHibernate(ItemFacadeQueries.java:590)
>> org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
>> org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343)
>> org.sakaiproject.tool.assessment.facade.ItemFacadeQueries.getItemTextId(ItemFacadeQueries.java:593)
>> sun.reflect.GeneratedMethodAccessor10376.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)
>> $Proxy98.getItemTextId(Unknown Source)
>> org.sakaiproject.tool.assessment.services.ItemService.getItemTextId(ItemService.java:226)
>> org.sakaiproject.tool.assessment.facade.AssessmentGradingFacadeQueries.saveItemGradingData(AssessmentGradingFacadeQueries.java:3155)
>> org.sakaiproject.tool.assessment.facade.AssessmentGradingFacadeQueries.completeItemGradingData(AssessmentGradingFacadeQueries.java:3128)
>> org.sakaiproject.tool.assessment.facade.AssessmentGradingFacadeQueries.autoSubmitAssessments(AssessmentGradingFacadeQueries.java:2845)
>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> 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)
>> $Proxy102.autoSubmitAssessments(Unknown Source)
>> org.sakaiproject.tool.assessment.services.GradingService.autoSubmitAssessments(GradingService.java:2003)
>> org.sakaiproject.tool.assessment.services.AutoSubmitAssessmentsJob.execute(AutoSubmitAssessmentsJob.java:84)
>> org.sakaiproject.component.app.scheduler.jobs.SpringJobBeanWrapper.execute(SpringJobBeanWrapper.java:70)
>> org.quartz.core.JobRunShell.run(JobRunShell.java:202)
>> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:534)
>>
>> Main display <https://sakai-prod3.oirt.rutgers.edu/threads.jsp>
>>                                    Kill thread<https://sakai-prod3.oirt.rutgers.edu/threads.jsp?kill=27>
>>
>> _______________________________________________
>> sakai-dev mailing list
>> sakai-dev at collab.sakaiproject.org
>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>
>> TO UNSUBSCRIBE: send email to
>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>> "unsubscribe"
>>
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to
> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
> "unsubscribe"
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20130215/e51c1874/attachment.html 


More information about the sakai-dev mailing list