Locking e concorrenza
Gestire accessi simultanei agli stessi dati
Sezione intitolata “Gestire accessi simultanei agli stessi dati”La concorrenza nasce quando più utenti o processi lavorano sugli stessi dati nello stesso momento. Il database deve evitare che si creino conflitti o risultati incoerenti.
Un lock impedisce temporaneamente ad altre operazioni incompatibili di usare la stessa risorsa.
In SQL, quel cartello può riguardare una riga, una tabella o altre parti interne del database.
Perché servono i lock
Sezione intitolata “Perché servono i lock”Senza meccanismi di locking, due aggiornamenti contemporanei potrebbero:
- sovrascriversi a vicenda
- leggere dati a metà
- produrre risultati difficili da prevedere
La cosa importante da capire
Sezione intitolata “La cosa importante da capire”Il locking è una protezione. Il problema nasce quando i lock durano troppo o vengono gestiti male.
Per questo conviene scrivere transazioni brevi e mirate, invece di lasciarle aperte inutilmente.
I lock impediscono che due aggiornamenti incompatibili producano un risultato incoerente.