Verrouillage pessimiste

Définition, exemples et bonnes pratiques

À retenir

  • Anticipe les conflits en bloquant l'accès immédiatement.
  • Garantit une intégrité maximale des données.
  • Peut ralentir les performances si les verrous durent trop longtemps.

C'est une stratégie de sécurité informatique utilisée pour empêcher plusieurs personnes de modifier la même donnée en même temps. On part du principe (pessimiste) qu'un conflit va forcément arriver : on pose donc un verrou exclusif sur l'information dès qu'on commence à la consulter, empêchant les autres d'y toucher ou même de la lire jusqu'à ce qu'on ait fini. C'est comme s'enfermer dans une cabine d'essayage : tant que vous y êtes, personne d'autre ne peut y entrer ni voir ce que vous essayez.

Étymologie

Traduction de l'anglais pessimistic locking. Le terme vient de l'adjectif « pessimiste » car le système anticipe systématiquement des conflits d'accès, et du mot « verrouillage » qui désigne l'action technique de bloquer une ressource.

Exemples d'usage

  • Une base de données bancaire qui bloque l'accès à un compte pendant qu'un virement est en cours de calcul.
  • L'utilisation de la commande SQL SELECT ... FOR UPDATE qui réserve des lignes de données pour une modification future.
  • Un logiciel de gestion de stock qui empêche deux vendeurs de réserver le dernier article en même temps.

Cas d'usage

Ce concept intervient principalement dans la gestion des bases de données relationnelles et dans la programmation de logiciels qui gèrent de nombreuses connexions simultanées (systèmes bancaires, sites e-commerce à fort trafic, gestion d'inventaires).

Bonnes pratiques

Il est crucial de libérer le verrou le plus rapidement possible pour ne pas paralyser le reste du système. Il faut également faire attention au risque d'interblocage (deadlock), où deux processus s'attendent mutuellement, bloquant tout indéfiniment.

Synonymes

verrouillage exclusif contrôle de concurrence pessimiste

Antonymes

verrouillage optimiste

Conseil

Si vous débutez en base de données, n'utilisez le verrouillage pessimiste que si c'est absolument nécessaire. Une utilisation excessive peut rendre votre application très lente pour les utilisateurs qui se retrouvent souvent en file d'attente.

Questions fréquentes

Quand choisir le verrouillage pessimiste plutôt qu'optimiste ?

On le choisit quand le risque de conflit est très élevé ou quand une erreur de données serait catastrophique (comme dans la finance).

Quel est le principal défaut ?

La perte de performance, car les autres utilisateurs doivent attendre que le premier ait terminé pour travailler.