Performance issues with large volumes of discussion data
@taimoor-ahmed-1 ci sta già lavorando.
Dal 16/10/2025.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Description
Significant performance issues noticed after migrating long-running courses with large volumes of discussion data to MySQL backend.
For a course with around 8000 threads and around 31000 comments, the get threads list API takes around 2 mins to respond and often just times out.
Open edX Release - Sumac
forum release - 0.2.0
Potential Cause
Apart from some DB queries which could be further optimized, the performance issue mostly seems to be arising due to the to_dict methods defined in models in the MySQL backends (Example : Comment to_dict() and ForumUser to_dict()), which in turn recursively fetches data from other models.
I created a POC to optimize the get threads list API and the response time in a sandbox with similar volumes of sample data came down to around 3s. Here, I did the following:
- Lingua principale
- Python
- Stelle
- 5
- Fork
- 28
- Merge medio
- 12m
- PR unite (30g)
- 5
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di openedx/forum
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 40/100
-
Remove mocks from edx-platform and use actual functions, instead mock MySQL and ElasticSearch.Apertacore contributor
Difficoltà 4/5 3-5 giorni Idoneità per principianti 10/100
-
core contributor
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Tutte le issue di openedx/forum
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
-
needs-triage tooling
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
neilsh/stunt-reel#317 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
TandoorRecipes/recipes#4926 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
PyTomography/PyTomography#431 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
igormcsouza/tether#278 ·
I maintainer di solito rispondono entro 1 giorno