Could you kindly tell me what is persistent grades feature exactly?
why is it disabled by default? and is it safe to enable it for a site with 20K learners or not?
is there any documents about it? (unfortunately I didn’t find anything by googling.)
thank you very much
By default, grades in Open edX are computed on the fly and are not stored in the database. This can make it slow/expensive to do things like produce reports of grades for a large course. Enabling persistent grades causes the grades to be stored in the database (MySQL), which makes a lot of grade-related reporting much faster because the grades can simply be read out of the database instead of computed for each student/course/subsection.
I am also curious about why the persistent grades feature is still disabled by default and why the “non persistent” grades mode still exists at all. Would someone from edX be able to comment on that?
For what it’s worth, we have been using persistent grades for several of our Open edX installations of various size for several years without any issues that I’m aware of. I recommend enabling it if you’re using the Ironwood release of Open edX or newer (earlier releases are known to have some related bugs).
+1 to that question - maybe @dave would know? If there are still issues with persistent grades, it would be good to have them in mind. Or if there is no reason to keep it off by default now, it might be worth switching the default for the upcoming Open edX release? CC @regis @nedbat
I suspect it’s mostly because the transition was bumpy and we never got back to it after things had stabilized. My understanding is that it took weeks to backfill the grades for edx.org, and we had some early operational issues. Also, it’s worth noting that it is computationally expensive–about 2/3rds of the celery worker load for edx-platform on edx.org goes to asynchronous grade recalculation.
All that being said, it’s definitely worth it, it’s been stable since at least Ironwood, and I agree that it should be the default for Juniper. I’m not sure what’s involved with making that transition though (I wasn’t on the team that did that work). @iloveagent57 might know more about what’s required for a migration, but he’s on vacation this week.
we found that in Ironwood or Juniper.master, when persistent grades are enabled and edx_sga xblock is graded, this makes lms.djangoapps.grades.tasks.recalculate_subsection_grade_v3 to throw a DatabaseNotReadyError() , and progress page is not updated…!
To reproduce it, enable persistent grades, add an edx_sga into a graded subsection, grade your assignment and go to progress page and check lms logs… Subsection grades are not updated. If you disable persistent grades, subsection grades calculated on the fly are ok.
A post was split to a new topic: Problems with sga grade submission