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

Pourrait-il y avoir un blocage lors de l'utilisation du verrouillage optimiste ?

Je crains que vous ne deviez être très précis dans votre définition du contrôle de concurrence optimiste. Dans la définition classique de Bernstein, Goodman et Hadzilacos, le contrôle de concurrence optimiste permet aux threads d'acquérir "virtuellement" les verrous, de procéder aux mises à jour, puis de vérifier la violation de cohérence lorsque la transaction tente de s'engager. Si une violation de cohérence se produit, la transaction est forcée d'abandonner et est resoumise. Selon cette définition, il n'est pas clair comment un blocage peut se produire, puisque les threads ne sont "jamais" bloqués en attendant un verrou. La définition classique du contrôle de concurrence optimiste n'est pas facile à mettre en œuvre en pratique. Cependant, des travaux récents sur la mémoire transactionnelle matérielle ouvrent certaines possibilités et jettent un peu de perspective sur ce vieux problème.