Aller au contenu

Condition de concurrence

Un résultat erroné dépend de l’ordre chronologique d’accès simultanés qui se chevauchent.

Également appeléRace condition
Architecture logicielle

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