We use the Django MPTT library in Kolibri, Kolibri Studio, and the Kolibri Data Portal - as well as the Morango library that is used for Kolibri and Kolibri Data Portal. Performance issues in this currently unmaintained library could drastically impact our users across all of these platforms, so it is worth investigating to see if there are any quick performance wins we could gain.
### Tasks
- [ ] Enumerate common queries across the platforms and libraries listed
- [ ] Profile those queries in Postgresql/SQLite (as appropriate) with an emphasis on queries in large databases for Postgresql profiling
- [ ] Evaluate these profiles for possible changes to indices to improve performance
- [ ] Test these changes and quantify the improvement (if any)
- [ ] Compile a report of any queries with poor performance that were not amenable to performance improvement with index changes, and file issues on the relevant repositories
- [ ] File follow up issues on the relevant repositories to apply the performance improvements
Overview
We use the Django MPTT library in Kolibri, Kolibri Studio, and the Kolibri Data Portal - as well as the Morango library that is used for Kolibri and Kolibri Data Portal. Performance issues in this currently unmaintained library could drastically impact our users across all of these platforms, so it is worth investigating to see if there are any quick performance wins we could gain.