Condition de concurrence
Un résultat erroné dépend de l’ordre chronologique d’accès simultanés qui se chevauchent.
Qu’est-ce qu’une condition de concurrence ?
Elle survient lorsqu’un résultat dépend indûment de l’ordre temporel de parcours concurrents. Plusieurs opérations accèdent souvent à un état partagé sans coordination adaptée. Elles n’ont pas besoin de s’exécuter simultanément sur plusieurs cœurs. Des accès entrelacés peuvent aussi produire un ordre inadéquat.
Dans un portail fictif, deux demandes de réservation vérifient le même dernier article disponible. Toutes deux voient initialement sa disponibilité et pourraient annoncer un succès sans protection adaptée. Vérification et réservation doivent donc être protégées ensemble pour qu’une seule demande réserve effectivement le dernier article ; seul le résultat détermine le retour. Ouvrir une transaction ne prouve pas seul que le conflit est empêché. L’équipe vérifie spécifiquement les parcours chevauchants et leur protection.
Sources
Termes associés
- Programmation asynchroneAttendre un résultat sans bloquer pour autant l’ensemble du traitement prévu.
- ParallélismeExécuter réellement plusieurs calculs au même moment.
- Concurrence en programmationOrganiser plusieurs tâches pour que leurs périodes de traitement puissent se chevaucher.
- Verrou de base de donnéesUn verrou de base de données coordonne les accès simultanés aux données ou objets pour éviter des opérations incompatibles non maîtrisées.
- Verrouillage optimisteLe verrouillage optimiste détecte à l’enregistrement si un enregistrement a changé depuis sa lecture.
- Cache stampedeUn cache stampede survient quand plusieurs requêtes manquent la même entrée en cache et relancent le même calcul coûteux.
Votre projet avec ASES
Décrivez-nous votre projet. Nous revenons vers vous avec une première évaluation.