Race Condition
Ein fehlerhaftes Ergebnis hängt von der zeitlichen Reihenfolge überlappender Zugriffe ab.
Was ist eine Race Condition?
Eine Race Condition entsteht, wenn ein Ergebnis unzulässig von der zeitlichen Reihenfolge nebenläufiger Abläufe abhängt. Häufig greifen mehrere Vorgänge auf gemeinsamen Zustand zu, ohne passend abgestimmt zu sein. Sie müssen dafür nicht zwingend auf mehreren Prozessorkernen gleichzeitig laufen. Auch zeitlich verschachtelte Zugriffe können eine ungeeignete Reihenfolge erzeugen.
In einem erfundenen Portal prüfen zwei Reservierungsanfragen denselben letzten verfügbaren Artikel. Beide sehen zunächst Verfügbarkeit und könnten ohne passende Absicherung beide Erfolg melden. Prüfung und Reservierung müssen deshalb gemeinsam so abgesichert werden, dass nur eine Anfrage den letzten Artikel erfolgreich reservieren kann; erst das Ergebnis bestimmt die Rückmeldung. Eine bloß geöffnete Datenbanktransaktion beweist noch nicht, dass dieser Konflikt verhindert wird. Das Team prüft gezielt überlappende Abläufe und die verwendete Absicherung.
Quellen
Verwandte Begriffe
- Asynchrone ProgrammierungAuf ein Ergebnis warten können, ohne deshalb den gesamten vorgesehenen Ablauf zu blockieren.
- ParallelitätMehrere Berechnungen tatsächlich zur selben Zeit ausführen.
- NebenläufigkeitMehrere Aufgaben so organisieren, dass ihre Bearbeitungszeiträume überlappen können.
- DatenbanksperreEine Datenbanksperre koordiniert gleichzeitige Zugriffe auf Daten oder Datenbankobjekte, damit unverträgliche Operationen nicht unkontrolliert zusammenlaufen.
- Optimistische SperreEine optimistische Sperre erkennt beim Speichern, ob ein Datensatz seit dem gelesenen Stand geändert wurde.
- Cache StampedeEin Cache Stampede entsteht, wenn gleichzeitige Anfragen dieselben Daten im Cache nicht finden und dieselbe teure Arbeit mehrfach starten.
Ihr Vorhaben mit ASES
Beschreiben Sie uns Ihr Vorhaben. Wir melden uns mit einer ersten Einschätzung.