Skip to main content

Cos'è l'isolamento dell'istantanea?

L'isolamento dell'istantanea è una proprietà nell'elaborazione delle transazioni e nei database che garantisce tutte le letture effettuate in una transazione, consultare la stessa istantanea del database.Ciò significa che la transazione si impegnerà a elaborare con successo la richiesta se i suoi aggiornamenti non sono in conflitto con altri aggiornamenti simultanei.L'isolamento dell'istantanea è un algoritmo di controllo per la concorrenza multi-versione che fornisce livelli di isolamento che evitano i problemi che si verificano comunemente con la concorrenza.Questo isolamento è stato implementato da diversi server di linguaggio strutturato (SQL), operando con quantità minime di anomalie di serializzazione.Gli isolamenti di istantanee non garantiranno, tuttavia, la completa serializzabilità in un server.

Molti principali sistemi di gestione dei dati contengono livelli di isolamento predefiniti che non sono serializzabili e spesso incontrano anomalie della serializzazione senza isolamento dell'istantanea.Ciò può far sì che grandi sistemi abbiano numerose occorrenze di errori di isolamento ogni giorno, il che può portare a essere corrotti i dati, in particolare ciò che si trova nelle applicazioni di magazzino dei dati.Il motivo per cui un sistema potrebbe operare in questo stato è perché le applicazioni che funzionano su livelli di isolamento più bassi possono migliorare l'efficienza se non si verificano errori gravi.L'isolamento dell'istantanea in un sistema riduce queste anomalie e mdash;Quando si prendono il tempo operativo e la quantità di errori che si verificano in considerazione e mdash;aumenta ulteriormente l'efficienza.

Alcuni database offrono l'isolamento dell'istantanea rispetto alla piena serializzabilità, ma ci sono anche anomalie che possono verificarsi all'interno di un database utilizzando questo tipo di isolamento.Queste anomalie possono portare a violazioni della coerenza dei dati perché le transazioni che mantengono la coerenza si interlettano o sono disposte a livelli alternati.L'unico modo per risolvere il problema e prevenire anomalie come queste è manipolare le applicazioni con un'introduzione di blocchi artificiali e aggiornamenti contrastanti, che sono stati seguiti dall'analisi dei conflitti tra ogni coppia di transazioni.Un modo diverso per risolvere queste anomalie, tuttavia, è modificare gli algoritmi del controllo di concorrenza di un sistema di database per effettuare rilevamenti automatici e prevenzioni delle anomalie dell'isolamento dell'istantanea in fase di esecuzione.Questo può essere fatto per applicazioni importanti o arbitrarie, ma fornisce un isolamento serializzabile.

Server SQL più recenti sono stati in grado di introdurre nuovi livelli di isolamento e nuovi livelli di isolamento istantanee per il miglioramento della concorrenza in alcune applicazioni.Laddove le prime versioni del server SQL utilizzavano il blocco come base per la concorrenza, l'isolamento dell'istantanea dipende dai miglioramenti della versioni di riga destinata al miglioramento delle prestazioni.Migliora questa performance quando incontra scenari con il blocco di lettura o scrittura evitandole.