[Building Sakai] Samigo performance grading an assessment

Neal Caidin neal.caidin at apereo.org
Mon Jun 30 06:12:39 PDT 2014


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20140630/14ac3ada/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/14ac3ada/attachment.jpg 


More information about the sakai-dev mailing list