Sobes.tech
Junior — Middle

Magyarázza el az optimista zárolás működési elvét az adatszolgáltatási rendszerekben.

sobes.tech MI

Válasz az MI-től

Optimista zárolás egy olyan megközelítés az adatok párhuzamos hozzáférésének kezelésére, amely feltételezi, hogy a konfliktusok ritkák, és a zárolásokat nem előre állítják be. Ehelyett az adatok frissítésekor ellenőrzik, hogy az adatok az utolsó olvasás óta nem változtak-e.

Működési elv:

  1. A kliens az adatokat egy verzióval vagy ellenőrző összeggel együtt olvassa.
  2. Szükséges módosításokat helyben hajt végre.
  3. A mentés során ellenőrzi, hogy az aktuális adatok verziója megegyezik-e az olvasáskor kapott verzióval.
  4. Ha egyeznek, a frissítés sikeres.
  5. Ha nem egyeznek, az azt jelenti, hogy az adatokat más folyamat módosította, és az művelet visszavonásra vagy ismétlésre kerül.

Java-ban ezt gyakran egy verziómezővel és az @Version annotációval valósítják meg JPA/Hibernate használatakor.

Példa:

@Entity
public class Product {
    @Id
    private Long id;

    private String name;

    @Version
    private int version; // optimista zárolási mező

    // getterek és setterek
}