Race condition
Un risultato errato dipende dall’ordine temporale di accessi sovrapposti.
Che cos’è una race condition?
Una race condition si verifica quando un risultato dipende impropriamente dall’ordine temporale di flussi concorrenti. Più operazioni accedono spesso a stato condiviso senza coordinamento adatto. Non devono necessariamente eseguirsi insieme su nuclei diversi. Anche accessi intercalati possono creare un ordine inadeguato.
In un portale inventato, due richieste di prenotazione verificano lo stesso ultimo articolo disponibile. Entrambe vedono inizialmente disponibilità e potrebbero annunciare successo senza protezione adatta. Verifica e prenotazione vanno quindi protette insieme perché una sola richiesta possa prenotare l’ultimo articolo; solo il risultato determina il riscontro. Aprire una transazione non dimostra da solo che il conflitto sia impedito. Il team controlla specificamente flussi sovrapposti e protezione usata.
Fonti
Termini correlati
- Programmazione asincronaAttendere un risultato senza per questo bloccare l’intero flusso previsto.
- ParallelismoEseguire realmente più calcoli nello stesso momento.
- ConcorrenzaOrganizzare più compiti perché i periodi di elaborazione possano sovrapporsi.
- Blocco del databaseUn blocco del database coordina accessi simultanei a dati o oggetti per evitare operazioni incompatibili non controllate.
- Blocco ottimisticoIl blocco ottimistico rileva al salvataggio se un record è cambiato rispetto allo stato letto.
- Cache stampedeUn cache stampede si verifica quando più cache miss simultanei avviano ripetutamente lo stesso calcolo o la stessa query costosa.
Il vostro progetto con ASES
Descriveteci il vostro progetto. Vi ricontatteremo con una prima valutazione.