Sobes.tech
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í:

  1. Klient čte data spolu s verzí nebo kontrolní součtem.
  2. Provádí potřebné změny lokálně.
  3. Při pokusu o zápis kontroluje, zda aktuální verze dat odpovídá verzi při čtení.
  4. Pokud se verze shodují, aktualizace proběhne úspěšně.
  5. 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
}