sql >> Database >  >> RDS >> Mysql

Waarom commit geen impasse veroorzaakt?

Ik vermoed dat dit een randgeval is dat niet de moeite waard is om efficiënter te maken. Merk op dat je 3 sessies moest krijgen om dezelfde rij te pakken - een zeldzame gebeurtenis. En je deed een ROLLBACK -- ook zeldzaam. Dus de impasse die zich heeft voorgedaan is overdreven, maar niet de moeite waard om te herstellen. Om deze reden moet men voorbereid zijn om overal met impasses om te gaan.

Ter info, als dit 3 knooppunten van een Galera-cluster waren, zouden er fouten zijn op COMMIT die de code zou moeten verwerken. Ik vermoed dat er nog meer combinaties van vreemde dingen aan de hand zijn als je deze transactie (met rollback of commit) meerdere keren toepast op meerdere nodes.

Nu op uw vraag... Vermoedelijk is de impasse niet ontstaan ​​omdat een van de threads de exclusieve lock kreeg en de andere werd geraakt met een "wacht" in plaats van een "deadlock".




  1. COALESCE() Functie in Oracle

  2. Kun je if-then-else-logica in SQL hebben?

  3. cc1:fout:niet-herkende opdrachtregeloptie -Wno-null-conversie bij het installeren van python-mysql op mac 10.7.5

  4. MYSQL-syntaxis evalueert niet niet gelijk aan in aanwezigheid van NULL