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:
- A kliens az adatokat egy verzióval vagy ellenőrző összeggel együtt olvassa.
- Szükséges módosításokat helyben hajt végre.
- A mentés során ellenőrzi, hogy az aktuális adatok verziója megegyezik-e az olvasáskor kapott verzióval.
- Ha egyeznek, a frissítés sikeres.
- 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
}