Mysql
 sql >> Base de données >  >> RDS >> Mysql

Interblocage lors de la création d'instances de travail

Le problème vient du verrou partagé. Par défaut, la méthode createJobExecution s'exécute dans la transaction avec un niveau d'isolement sérialisable. Lorsque ce niveau d'isolement est utilisé, InnoDB convertit implicitement toutes les instructions SELECT simples en SELECT ... LOCK IN SHARE MODE. Par conséquent, JOB_INST_UN est verrouillé partagé en raison d'une requête sur la table d'instance. Et puis, lors de l'insertion d'une instance de travail, un verrou exclusif sur JOB_INST_UN est requis. Un interblocage est apparu, si cet index unique était verrouillé partagé par une autre transaction.