[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