Bazy danych · Senior · Pytanie 9 z 75
Czym jest write skew?
-- Rule: at least one doctor must be on call.
-- T1 and T2 both see 2 doctors on call, each takes one off.
UPDATE doctors SET on_call = false WHERE id = 1; -- T1
UPDATE doctors SET on_call = false WHERE id = 2; -- T2- 1Zapisem wolniejszym niż odczyt
- 2Repliką otrzymującą zapisy w złej kolejności
- ✓Poprawna odpowiedź: Dwie transakcje czytają nakładające się dane, potem aktualizują różne wiersze i razem łamią regułę, której żadna nie złamałaby sama
Wyjaśnienie
Repeatable Read (snapshot isolation) na to pozwala. Zapobiegają temu Serializable, jawne blokady (FOR UPDATE na sprawdzanych wierszach) albo ograniczenie.