Cos'è il controllo della concorrenza?

Nella programmazione della gestione dei dati, il controllo della concorrenza è un meccanismo progettato per garantire che risultati accurati siano generati da operazioni simultanee. Tali risultati devono anche essere ottenuti in modo tempestivo. Il controllo della concorrenza è molto spesso visto nei database in cui vi è una cache di informazioni ricercabili per gli utenti.

I programmatori cercano di progettare un database in modo tale che l'effetto delle transazioni importanti sui dati condivisi sarà in serie equivalente. Ciò significa che i dati che entrano in contatto con serie di transazioni sarebbero in un determinato stato in cui i risultati sono ottenibili se tutte le transazioni eseguono in serie e in un ordine particolare. A volte quei dati non sono validi a seguito della modifica da due transazioni, contemporaneamente.

Esistono diversi modi per garantire che le transazioni abbiano eseguite l'una dopo l'altra, incluso l'uso dell'esclusione reciproca e la creazione di una risorsa che decide a quali transazioni hanno accesso. Questo è eccessivo, tuttavia, eNon consentirà a un programmatore di beneficiare del controllo di concorrenza in un sistema distribuito. Il controllo della concorrenza consente l'esecuzione simultanea di più transazioni mantenendo queste transazioni lontane l'una dall'altra, garantendo la linearizzabilità. Un modo per implementare il controllo della concorrenza è l'uso di un blocco esclusivo su una particolare risorsa per le esecuzioni di transazioni seriali che condividono le risorse. Le transazioni bloccano un oggetto destinato a essere utilizzato e se qualche altra transazione fa una richiesta per l'oggetto bloccato, che la transazione deve attendere che l'oggetto si sblocchi.

L'implementazione di questo metodo nei sistemi distribuiti prevede manager di blocchi, server che emettono blocchi di risorse. Questo è molto simile ai server per esclusioni reciproche centralizzate, in cui i clienti possono richiedere blocchi e inviare messaggi per il rilascio di blocchi su una determinata risorsa. Preservazione di Exe serialeCution, tuttavia, è ancora necessario per il controllo della concorrenza. Se due transazioni separate accedono a un set di oggetti simili, i risultati devono essere simili e come se queste transazioni fossero eseguite in un ordine particolare. Per garantire l'ordine sull'accesso a una risorsa, viene introdotto il bloccaggio a due fasi, il che significa che le transazioni non sono consentite nuove blocchi al momento del rilascio di un blocco separato.

Nel blocco bifase per il controllo della concorrenza, la sua fase iniziale è considerata la fase di crescita, in cui la transazione acquisisce il suo blocco necessario. La fase successiva è considerata una fase di restringimento, in cui la transazione ha le sue serrature rilasciate. Ci sono problemi con questo tipo di bloccaggio. Se le transazioni interrompono, altre transazioni potrebbero utilizzare i dati da oggetti modificati e sbloccati da transazioni abortite. Ciò comporterebbe la demolizione di altre transazioni.

ALTRE LINGUE

Questo articolo è stato utile? Grazie per il feedback Grazie per il feedback

Come possiamo aiutare? Come possiamo aiutare?