Бази даних · Senior · Запитання 9 з 75
Що таке 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- 1Запис, повільніший за читання
- 2Репліка отримує записи не в тому порядку
- ✓Правильна відповідь: Дві транзакції читають дані, що перетинаються, потім оновлюють різні рядки й разом порушують правило, яке жодна з них окремо не порушила б
Пояснення
Repeatable Read (snapshot isolation) це допускає. Запобігають Serializable, явні блокування (FOR UPDATE на перевірених рядках) або обмеження.