[Building Sakai] Samigo performance grading an assessment

Miguel Carro Pellicer miguel at educlever.es
Mon Jun 30 07:45:14 PDT 2014


Not really,

The performance was bad when grading an assessment released to groups, 
the way that Samigo calculates the available user's submissions was 
heavy as hell.

I did a complete study because i thought that only the delivery was 
improved, but not! i should started looking at Sakai 10, it improves 
that implementation and now the response times are reasonable, so no 
more problems yet.

Thanks and good job! Miguel.


El 30/06/2014 15:12, Neal Caidin escribió:
> Thanks Miguel, for the detailed analysis.
>
> Could you please elaborate on the problem with sections?
>
> Is it related to this jira:
> https://jira.sakaiproject.org/browse/KNL-800
>
> ?
>
> -- Neal
>
>
>> Miguel Carro Pellicer <mailto:miguel at educlever.es>
>> June 30, 2014 at 5:29 AM
>> I backported the Sakai 10 implementation and improves a lot the 
>> performance.
>>
>> My implementation is faster but has problems with sections, so at the 
>> end it's not correct.
>>
>> Sakai 10 implementation is much better than 2.9's, congratulations 
>> community! Miguel.
>>
>>
>> El 30/06/2014 11:15, Miguel Carro Pellicer escribió:
>>
>> _______________________________________________
>> 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"
>> Miguel Carro Pellicer <mailto:miguel at educlever.es>
>> June 30, 2014 at 5:15 AM
>> I noticed there is a new implementation of this method in Sakai 10, i 
>> will study the new implementation comparing the execution time.
>>
>> I want to do some tests before getting a solid conclusion.
>>
>> Miguel.
>>
>>
>> El 30/06/2014 10:28, Miguel Carro Pellicer escribió:
>>
>> _______________________________________________
>> 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"
>> Miguel Carro Pellicer <mailto:miguel at educlever.es>
>> June 30, 2014 at 4:28 AM
>> Hi Subscribers, i want to share some experiences with the Samigo 
>> grading process and its performance.
>>
>> One of my clients detected some performance issues while grading an 
>> assessment "Released to groups". I made an export of the production 
>> database to study the problem in depth and i got this conclusions:
>>
>> Execution conditions:
>>
>>   * Site with over 280 users (We have sites with 7K users, so i
>>     selected that site to do not die in the process)
>>   * Site with 30+ groups.
>>   * Assessment released to 1 group, 10 people max inside the group
>>   * Only 1 submission
>>
>> Execution time:
>> -------------Start Executing TotalScoreBean->getUserIdMap
>> ---TotalScoreBean->getUserIdMap getEnrollmentListForSelectedSections 
>> Total: 6.107273677 secs / Size of the list-->1
>> ---TotalScoreBean->getUserIdMap Put list elements inside the Map 
>> Total: 3.69807E-4 secs
>> -------------End execution of TotalScoreBean->getUserIdMap Total: 
>> 6.107788306 secs
>>
>> That method spent 6.10 seconds to return the map of users, that's too 
>> much,  i reviewed the implementation of 
>> SectionAwareServiceHelperImpl.java -> getGroupReleaseEnrollments.
>>
>>   * The method iterates over all users in the site
>>   * For every user checks if the user belongs to the configured groups.
>>       o Iterates over all site groups where the user is member
>>       o Compares if the groups where the user is member is configured
>>         in the assessment.
>>
>> The final time for this case is 6,10 seconds, we have sites that 
>> spents almost 40 seconds in render TotalScores screen.
>>
>> So....i decided to make a new implementation
>>
>>   * Gets the configured groups
>>   * For every configured group, get the enrolled users.
>>
>> .....and i got this times:
>>
>> -------------Start Executing TotalScoreBean->getUserIdMap
>> ---TotalScoreBean->getUserIdMap getEnrollmentListForSelectedSections 
>> Total: 0.312536644 secs / Size of the list-->1
>> ---TotalScoreBean->getUserIdMap Put list elements inside the Map 
>> Total: 3.33822E-4 secs
>> -------------End execution of TotalScoreBean->getUserIdMap Total: 
>> 0.31294946 secs
>>
>> The new implementation is this 
>> (samigo-services\src\java\org\sakaiproject\tool\assessment\integration\helper\integrated\SectionAwareServiceHelperImpl.java):
>>
>> /**
>>      * added by MCARRO - June 2014
>>      * @param siteid
>>      * @param userUid
>>      * @return
>>      */
>>     public List getGroupReleaseEnrollments(String siteid, String 
>> userUid, String publishedAssessmentId) {
>>         List enrollments = new ArrayList<EnrollmentRecord>();
>>         List releaseGroupIds = PersistenceService.getInstance()
>>           .getPublishedAssessmentFacadeQueries()
>> .getReleaseToGroupIdsForPublishedAssessment(publishedAssessmentId);
>>         Iterator groupsIter = releaseGroupIds.iterator();
>>         while (groupsIter.hasNext()) {
>>             String groupId = (String) groupsIter.next();
>> enrollments.addAll(getSectionAwareness().getSectionMembersInRole(groupId, 
>> Role.STUDENT));
>>         }
>>         return enrollments;
>>     }
>>
>> Someone consider interesting changing the current implementation? 
>> Someone see any problem with this new implementation? I checked lots 
>> of assessments and the information is the same, but the processing 
>> time decreased drastically.
>>
>> Thank you so much, Miguel.
>>
>> _______________________________________________
>> 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"
>
> -- 
> Neal Caidin
> Sakai Community Coordinator
> Apereo Foundation
> neal.caidin at apereo.org
> Skype me! (but let me know in advance for the first interaction) - 
> nealkdin
>

-- 
Miguel Carro Pellicer
Logo 	

Miguel Carro 
Pellicer<http://es.linkedin.com/pub/miguel-carro-pellicer/38/502/b92>
/IT Consultant - Elearning solutions/

Phone: +34 - 686266485
Email: miguel at educlever.es <mailto:miguel at educlever.es>

No me imprimas si no es necesario. Protejamos el medio ambiente


AVISO LEGAL: El contenido de este mensaje de correo electrónico, 
incluidos los ficheros adjuntos, es confidencial y está protegido por el 
artículo 18.3 de la Constitución Española, que garantiza el secreto de 
las comunicaciones.
Si usted recibe este mensaje por error, por favor póngase en contacto 
con el remitente para informarle de este hecho, y no difunda su 
contenido ni haga copias.
*** Este mensaje ha sido verificado con herramientas de eliminación de 
virus y contenido malicioso ***
Este aviso legal ha sido incorporado automáticamente al mensaje.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20140630/2107e46f/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: compose-unknown-contact.jpg
Type: image/jpeg
Size: 770 bytes
Desc: not available
Url : http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20140630/2107e46f/attachment.jpg 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: AF-BRAND---EDUCLEVER-01.jpg
Type: image/jpeg
Size: 17251 bytes
Desc: not available
Url : http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20140630/2107e46f/attachment-0001.jpg 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: linkedin.jpg
Type: image/jpeg
Size: 1103 bytes
Desc: not available
Url : http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20140630/2107e46f/attachment-0002.jpg 


More information about the sakai-dev mailing list