Skip to main content

Vad är Snapshot -isolering?

Snapshot Isolation är en egenskap i transaktionsbehandling och databaser som garanterar alla läsningar som är gjorda i en transaktion, se samma databas -ögonblicksbild.Detta innebär att transaktionen kommer att förbinda sig att framgångsrikt behandla begäran om dess uppdateringar inte strider mot några andra samtidiga uppdateringar.Snapshot-isolering är en kontrollalgoritm för samtidighet för flera versioner som ger isoleringsnivåer som undviker problem som vanligtvis uppstår med samtidighet.Denna isolering har implementerats av flera olika strukturerade frågespråksservrar (SQL) som arbetar med minimala mängder serialiseringsavvikelser.Snapshot -isolationer garanterar dock inte fullständig serialisering på en server.

Många stora datahanteringssystem innehåller standardisoleringsnivåer som inte är serialiserbara och ofta stöter på avvikelser av serialisering utan ögonblicksbild.Detta kan leda till att stora system har många förekomster av isoleringsfel varje dag, vilket kan leda till att data skadas, särskilt det som finns i lagerapplikationer av data.Anledningen till att ett system kan fungera i detta tillstånd beror på att applikationer som körs på lägre isoleringsnivåer kan förbättra effektiviteten om inga allvarliga fel uppstår.Inklusive ögonblicksbild i ett system minskar dessa avvikelser och mdash;När du tar driftstid och mängden fel som uppstår mdash;Ökar effektiviteten ytterligare.

Vissa databaser erbjuder ögonblicksbild i motsats till full serialiserbarhet, men det finns också avvikelser som kan uppstå inom en databas som använder denna typ av isolering.Dessa avvikelser kan leda till överträdelser av datakonsistens eftersom transaktioner som upprätthåller konsistensinterlevering eller är ordnade i växlande lager.Det enda sättet att lösa problemet och förhindra avvikelser som dessa är att manipulera applikationer med en introduktion av konstgjorda lås och motstridiga uppdateringar, som följdes av analys av konflikterna mellan varje par transaktioner.Ett annat sätt att lösa dessa avvikelser är emellertid att modifiera algoritmerna för ett databassystems samtidighetskontroll för att göra automatiska upptäckter och förebyggande av avvikelser av ögonblicksbild vid körning.Detta kan göras för viktiga eller godtyckliga applikationer, men ger isolering som är serialiserbar.

Nyare SQL -servrar har kunnat införa nya nivåer av isolering såväl som nya nivåer av ögonblicksbild för förbättring av samtidighet i vissa applikationer.Där tidiga versioner av SQL -servern använde låsning som grund för samtidighet, är Snapshot -isolering beroende av förbättringar av radversion som är avsedd för förbättring av prestanda.Det förbättrar denna prestanda när den möter scenarier med läs- eller skrivblockering genom att undvika dem.