#45 Smart, Customizable Log Caching

Open
opened 1 month ago by hz · 0 comments
hz commented 1 month ago

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.

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.
hz added the
enhancement
label 1 month ago
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
Cancel
Save
There is no content yet.