Blokowanie optymistyczne (optimistic locking)
Wykrywanie konfliktujących edycji numerem wersji: zapis udaje się tylko wtedy, gdy rekord nie zmienił się od odczytu.
Dwie osoby otwierają to samo zamówienie; obie zapisują. Bez ochrony drugi zapis po cichu nadpisuje pierwszy. Z kolumną wersji aktualizacja mówi „gdzie id = 7 i wersja = 3”, więc drugi zapis trafia na wersję 4 i się nie udaje, a aplikacja może pokazać konflikt. Blokowanie pesymistyczne (SELECT FOR UPDATE) zamiast tego wstrzymuje drugiego piszącego, co pasuje do częstych konfliktów kosztem czekania i ryzyka zakleszczeń.
Powiązane hasła
- Agregat (DDD): Grupa obiektów zmienianych jako całość, z jednym korzeniem, który pilnuje reguł biznesowych i wyznacza granicę jednej transakcji.
- Idempotentność (idempotency key): Operacja jest idempotentna, jeśli wykonana dwa razy daje ten sam efekt co raz. Ponowienia stają się bezpieczne.
- Fencing token (blokada rozproszona): Liczba rosnąca przy każdym przyznaniu blokady; chroniony zasób odrzuca zapisy ze starszą liczbą, więc ktoś z nieaktualną blokadą nie narobi szkód.
