Node.js · Senior · Pytanie 72 z 75
Dwa żądania jednocześnie czytają rekord, zmieniają go i zapisują, a jedna zmiana ginie. Jak zapobiega temu blokowanie optymistyczne?
- 1Żądania obsługuje tylko jeden proces Node.js
- ✓Poprawna odpowiedź: Każdy wiersz ma wersję; aktualizacja zawiera
WHERE version = $oldi nie udaje się, jeśli inny zapis go zmienił, więc klient ponawia - 3Baza blokuje całą tabelę przy każdym odczycie
Wyjaśnienie
Blokowanie optymistyczne sprawdza się, gdy konflikty są rzadkie. Pesymistyczne (SELECT ... FOR UPDATE) pasuje do częstych konfliktów, ale dłużej trzyma blokady.