Sobes.tech
Junior — Middle

Quels risques surviennent lorsque plusieurs requêtes modifiant les mêmes données sont exécutées simultanément dans le contexte de deux transactions?

sobes.tech IA

Réponse de l'IA

Lors de l'exécution simultanée de plusieurs requêtes modifiant les mêmes données dans différentes transactions, les risques suivants apparaissent :

  • Condition de course (Race Condition) : les modifications d'une transaction peuvent écraser celles d'une autre, entraînant une perte de données.

  • Violation de l'intégrité des données : si les transactions ne sont pas correctement isolées, les données peuvent se retrouver dans un état incohérent.

  • Lectures fantômes : une transaction voit des lignes modifiées ou ajoutées par une autre transaction.

  • Verrouillages morts (Deadlocks) : les transactions peuvent se bloquer mutuellement en attendant la libération de ressources.

  • Perte de mises à jour (Lost Updates) : lorsque deux requêtes lisent les mêmes données puis tentent de les mettre à jour, les modifications de l'une peuvent être écrasées par l'autre.

Pour éviter ces problèmes, on utilise des niveaux d'isolation de transaction et des mécanismes de verrouillage, comme SELECT FOR UPDATE ou le verrouillage optimiste.