Race condition
Een fout resultaat hangt af van de tijdsvolgorde van overlappende toegang.
Wat is een race condition?
Een race condition ontstaat als een resultaat ongeoorloofd afhangt van de tijdsvolgorde van gelijktijdig lopende processen. Vaak benaderen meerdere bewerkingen gedeelde toestand zonder passende afstemming. Ze hoeven niet tegelijk op meerdere processorkernen te draaien. Ook verweven toegangen kunnen een verkeerde volgorde opleveren.
In een fictief portaal controleren twee reserveringsaanvragen hetzelfde laatste beschikbare artikel. Beide zien aanvankelijk beschikbaarheid en kunnen zonder passende beveiliging succes melden. Controle en reservering moeten samen zo worden beschermd dat slechts één aanvraag het laatste artikel kan reserveren; pas de uitkomst bepaalt de melding. Alleen een databasetransactie openen bewijst niet dat dit conflict wordt voorkomen. Het team controleert doelgericht overlappende workflows en gebruikte bescherming.
Bronnen
Verwante begrippen
- Asynchroon programmerenOp resultaat wachten zonder daardoor de hele beoogde workflow te blokkeren.
- ParallellismeMeerdere berekeningen daadwerkelijk op hetzelfde moment uitvoeren.
- ConcurrencyMeerdere taken zo organiseren dat hun verwerkingsperioden kunnen overlappen.
- DatabasevergrendelingEen databasevergrendeling coördineert gelijktijdige toegang tot gegevens of objecten zodat onverenigbare bewerkingen niet ongecontroleerd samengaan.
- Optimistic lockingOptimistic locking ontdekt bij het opslaan of een record sinds het lezen is gewijzigd.
- Cache stampedeEen cache stampede ontstaat wanneer gelijktijdige cachemissers dezelfde dure berekening of gegevensopvraag herhaaldelijk starten.
Uw project met ASES
Beschrijf ons uw project. We nemen contact met u op met een eerste inschatting.