Junior — Middle
Vysvětlete princip fungování optimistického zámku v systémech správy dat.
sobes.tech AI
Odpověď od AI
Optimistické zamykání je přístup k řízení souběžného přístupu k datům, při kterém se předpokládá, že konflikty jsou vzácné a zámky nejsou předem nastavovány. Místo toho se při aktualizaci dat kontroluje, zda od posledního čtení nedošlo ke změnám.
Princip fungování:
- Klient čte data spolu s verzí nebo kontrolní součtem.
- Provádí potřebné změny lokálně.
- Při pokusu o zápis kontroluje, zda aktuální verze dat odpovídá verzi při čtení.
- Pokud se verze shodují, aktualizace proběhne úspěšně.
- Pokud se neshodují, znamená to, že data byla změněna jiným procesem, a operace je vrácena nebo opakována.
V Java se to často implementuje přes pole verze v entitě a anotaci @Version při použití JPA/Hibernate.
Příklad:
@Entity
public class Product {
@Id
private Long id;
private String name;
@Version
private int version; // pole pro optimistické zamykání
// gettery a settery
}