Tecniche di controllo della concorrenza

January 8

Tecniche di controllo della concorrenza


controllo della concorrenza gestisce i problemi connessi con consentendo a più utenti contemporaneamente l'accesso a soggetti condivisi, come una tabella di dati o di altri oggetti. In questo caso, un metodo di controllo deve gestire gli aggiornamenti. Il metodo universalmente accettata era serializzare l'esecuzione degli aggiornamenti. Ma non è accettabile in alcuni contesti come l'elaborazione primo arrivato, primo servito. Ci sono vari metodi di controllo della concorrenza che si applicano in circostanze diverse.

Controllo della concorrenza pessimistica

Questo metodo implementa serrature che impedisce agli utenti di modificare i dati in modo che impatto altri utenti. Quando un utente esegue un'azione su un soggetto che applica un blocco sul soggetto, altri utenti non possono condurre azioni su tale entità finché il proprietario della serratura lo rilascia. Il controllo pessimistica viene utilizzata quando vi è un elevato contesa per i dati.

Controllo della concorrenza ottimistica

Utilizzando il metodo di controllo della concorrenza ottimistica, gli utenti non si bloccano i dati quando lo utilizzano. Quando un aggiorna i dati utente, il sistema controlla database se un altro utente ha cambiato i dati dopo lo leggono. Al momento l'aggiornamento da un altro utente, viene generato un errore. L'utente che riceve l'errore ripristina la transazione e ricomincia. Questo metodo viene utilizzato quando c'è bassa contesa dei dati.

Due tecniche di fase di chiusura

Blocco è un'operazione che assicura un permesso di lettura o di scrittura ad una entità. Per esempio, Lock (X). L'entità X è bloccato da un utente. Utilizzando questa tecnica, una transazione è ben formata se: non si blocca un soggetto prima di leggere o scrivere ad esso; non dovrebbe bloccare una entità chiusa a chiave e non dovrebbe tentare di sbloccare un soggetto libero.

Controllo della concorrenza basato sul timestamp

Un numero intero monotona crescente chiamato timestamp mostra l'età di un'operazione su un soggetto. Un valore timestamp più grande rappresenta un'operazione di recente. Metodo basato sul timestamp utilizza timestamp per controllare l'esecuzione di transazioni concorrenti.