Optimistic Concurrency Control
Contrôle de concurrence optimiste
Le contrôle de concurrence optimiste permet aux personnes de travailler en même temps sans verrouiller au préalable. Avant d'enregistrer, il vérifie la version et rejette une modification basée sur des données obsolètes.
Un autre exemple
Deux cliniciens ouvrent la révision 17 du plan de soins. Le premier enregistre la révision 18 avec `If-Match: "r17"`. Le second reçoit 412, compare les champs, fusionne avec soin, puis réessaie avec `"r18"` ; aucune mise à jour n'est perdue silencieusement.
Parties principales
- 01Jeton de version de lecture
- 02écriture conditionnelle
- 03réponse aux conflits et fusion
Utilisez-le lorsque
Utilisez les vérifications de version lorsque les conflits sont rares, que les modifications sont importantes et que le produit peut aider les personnes à comparer et à récupérer.
Ne l'utilisez pas lorsque
Après qu'une vérification de version échoue, ne pas réessayer automatiquement les modifications dont l'ordre change le résultat. Évitez cette méthode lorsque les conflits sont constants et coûteux.
Nom utilisé dans le code
ETag + If-Match / version column + conditional update Avant d'expédier
Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback.
Outcome: Complete the task with Contrôle de concurrence optimiste (Optimistic Concurrency Control). User context: Deux cliniciens ouvrent la révision 17 du plan de soins. Le premier enregistre la révision 18 avec `If-Match: "r17"`. Le second reçoit 412, compare les champs, fusionne avec soin, puis réessaie avec `"r18"` ; aucune mise à jour n'est perdue silencieusement. Technical concept or control: Contrôle de concurrence optimiste (Optimistic Concurrency Control). Why it fits: Utilisez les vérifications de version lorsque les conflits sont rares, que les modifications sont importantes et que le produit peut aider les personnes à comparer et à récupérer. Do not use it when: Après qu'une vérification de version échoue, ne pas réessayer automatiquement les modifications dont l'ordre change le résultat. Évitez cette méthode lorsque les conflits sont constants et coûteux. Engineering requirements: Define inputs, outputs, contracts, and rules that must always hold. Set authorization and input checks. Define failures, timeouts, retries, one-time effects, data moves, and compatibility limits. Operations: Add useful signals and logs that hide sensitive data. Set capacity limits and write an operator guide. Test recovery and rollback. Acceptance criteria: Contract and failure-path tests pass. Data and authorization rules still hold during retries and partial failures. Check performance limits, monitoring, recovery, and rollback. Evidence and limits (evidence boundary): Aucun standard officiel unique ne régit l’ensemble du terme. Sa signification peut varier selon les équipes, plateformes ou frameworks. Unknowns to confirm: Where the code runs, data stores, traffic shape, consistency needs, and the security boundary. Also confirm the compatibility period, service goals, and rollback limits.
Vérifiez cette demande
Review how Contrôle de concurrence optimiste (Optimistic Concurrency Control) is used now. Definition: Le contrôle de concurrence optimiste permet aux personnes de travailler en même temps sans verrouiller au préalable. Avant d'enregistrer, il vérifie la version et rejette une modification basée sur des données obsolètes. Release checks: Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback. Before changing code, list the evidence, gaps, severity, and the smallest safe fix.