Smart, Customizable Log Caching
Currently, several courses have gradebooks that are really slow because they need to loop over all of a student's activity to determine their scores. This is incredibly slow, and if enough students load their gradebook simultaneously, it can effectively accidentally act as a DoS attack. It would be nice to add a way to allow courses to specify information that should be cached for every problem (or for every user, or....).
Maybe this is a group of two functions:
cs_update_user_page_cache(old_cache, submission), which updates a per-user-per-page cache (every user has a cache per page).
cs_update_user_cache(old_cache, submission), which updates a per-user cache.
I'll need to think a bit more about the form these functions take (and whether the above are the two types of caches that make sense). But it's a really nice idea that can prevent some progress/gradebook pages from being a really sticky river late in the semester.