Race condition
Et forkert resultat afhænger af tidsrækkefølgen i overlappende adgange.
Hvad er en race condition?
En race condition opstår, når et resultat afhænger forkert af tidsrækkefølgen i samtidige forløb. Flere operationer tilgår ofte fælles tilstand uden passende koordinering. De behøver ikke køre samtidig på flere processorkerner. Også indflettede adgange kan skabe en uegnet rækkefølge.
I en opdigtet portal kontrollerer to reservationsanmodninger samme sidste tilgængelige vare. Begge ser først tilgængelighed og kan uden passende beskyttelse melde succes. Kontrol og reservation skal derfor beskyttes samlet, så kun én anmodning kan reservere den sidste vare; først resultatet bestemmer tilbagemeldingen. Blot at åbne en databasetransaktion beviser ikke, at konflikten forhindres. Teamet kontrollerer målrettet overlappende forløb og den anvendte beskyttelse.
Kilder
Relaterede begreber
- Asynkron programmeringAt vente på et resultat uden dermed at blokere hele det planlagte forløb.
- ParallelitetAt udføre flere beregninger reelt på samme tid.
- SamtidighedAt organisere flere opgaver, så deres behandlingsperioder kan overlappe.
- DatabaselåsEn databaselås koordinerer samtidig adgang til data eller objekter, så uforenelige handlinger ikke forløber ukontrolleret.
- Optimistisk låsningOptimistisk låsning registrerer ved lagring, om en post er ændret siden den læste tilstand.
- Cache stampedeEt cache stampede opstår, når samtidige cache-misses starter den samme dyre beregning eller dataforespørgsel flere gange.
Dit projekt med ASES
Beskriv dit projekt for os. Vi vender tilbage med en første vurdering.