Database improvements
Making a ticket here to consolidate a few existing database-related tickets that have been stagnating for a while.
- Optimizing the
groupobjectpermission
table: https://git.ligo.org/lscsoft/gracedb/issues/190 - MyISAM--> InnoDB: https://git.ligo.org/lscsoft/gracedb/issues/51. I need to add my notes about testing this before and the deadlocking issues I had before. I'm curious if the permissions table changes would make a difference for this one.
- Retry transactions automatically on failure? I did not have good luck with this suggestion before, but maybe it can be generalized as a global retry hook? In the CI environment, GWCelery ran into a race condition when different tests were trying to
.save()
the same superevent at the same time (emfollow/gracedb-sdk@6e6b6beb...ae83cdeb). The pipelines failed with an IntegrityError, but I wonder if a global retry feature would improve stability - MariaDB--> PostgresQL (https://git.ligo.org/lscsoft/gracedb/issues/52). Definitely a post-O3b thing.
I'll update this ticket as I come across more issues.