3 votes

Quel est un exemple du monde réel où vous choisiriez d'utiliser un verrouillage pessimiste ?

J'ai lu de nombreux articles sur le moment où il faut utiliser le verrouillage optimiste ou pessimiste et ma compréhension de base est la suivante :

  • Le verrouillage optimiste est plus évolutif, il faut donc l'utiliser si possible.
  • Utilisez le verrouillage pessimiste lorsqu'il n'est pas judicieux d'autoriser des mises à jour simultanées.

Je n'ai pas pu trouver d'exemples utiles de cas où il serait judicieux de choisir un verrouillage pessimiste (il semble que l'optimisme soit généralement préféré).

Il serait très utile que quelqu'un puisse répondre à un exemple précis : disons que nous avons une table Carte de crédit/compte et que nous voulons autoriser une transaction. L'intégrité est très importante et je ne vois pas pourquoi il serait utile d'autoriser des mises à jour simultanées. S'agit-il d'un exemple où nous utiliserions un verrouillage pessimiste ?

2voto

Bill Karwin Points 204877

Cette question est presque une réplique de la question précédente : Verrouillage optimiste ou pessimiste

Le verrouillage pessimiste est bon pour les cas où vous voulez garantir le verrouillage atomique de plusieurs ressources. Cela permet d'éviter les blocages.

Le verrouillage optimiste repose sur le verrouillage non atomique, dans le sens où vous pouvez avoir besoin de verrouiller plusieurs ressources pendant votre transaction, et si vous acquérez les verrous de manière optimiste, vous le faites un par un, ce qui crée une condition de course par rapport aux autres transactions concurrentes.

Le verrouillage pessimiste comporte aussi des risques. Vous pourriez verrouiller certaines ressources inutilement, s'il s'avère que vous n'aviez pas besoin de les verrouiller après tout. Cela peut dépendre de la logique de votre transaction, mais vous devez les verrouiller dans le cadre de la demande de verrouillage atomique, au cas où vous en auriez besoin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X