Hva er øyeblikksbildeisolering?
Øyeblikksbildeisolasjon er en egenskap i transaksjonsbehandling og databaser som garanterer at alle leser som blir gjort i en transaksjon, ser den samme databasen "øyeblikksbilde." Dette betyr at transaksjonen vil forplikte seg til vellykket behandling av forespørselen hvis oppdateringene ikke er i konflikt med andre samtidig oppdateringer. Øyeblikksbildeisolasjon er en kontrollalgoritme for flerversjons samtidighet som gir isolasjonsnivåer som unngår problemene som ofte oppstår med samtidighet. Denne isolasjonen er implementert av flere forskjellige SQL-servere med strukturert forespørsel (SQL), og opererer med minimale mengder serialiseringsavvik. Øyeblikksbildeisolasjoner garanterer imidlertid ikke fullstendig serialiserbarhet på en server.
Mange viktige datahåndteringssystemer inneholder standardisolasjonsnivåer som ikke kan serialiseres, og som ofte møter anomalier ved seriellisering uten øyeblikksbildeisolering. Dette kan føre til at store systemer har mange forekomster av isolasjonsfeil hver dag, noe som kan føre til at data blir ødelagt, spesielt det som finnes i lagerapplikasjoner av data. Årsaken til at et system kan fungere i denne tilstanden er fordi applikasjoner som kjører på lavere isolasjonsnivåer kan forbedre effektiviteten hvis ingen alvorlige feil oppstår. Å inkludere øyeblikksbildeisolering i et system reduserer disse avvikene, og - når du tar driftstid og mengden feil som oppstår - øker effektiviteten ytterligere.
Noen databaser tilbyr øyeblikksbildeisolering i motsetning til full serialisering, men det er også avvik som kan oppstå i en database som bruker denne typen isolasjon. Disse avvikene kan føre til brudd på datakonsistens fordi transaksjoner som opprettholder konsistensen flette inn, eller er ordnet i vekslende lag. Den ene måten å løse problemet og forhindre avvik som disse er å manipulere applikasjoner med en introduksjon av kunstige låser og motstridende oppdateringer, som ble fulgt av analyse av konfliktene mellom hvert par av transaksjoner. En annen måte å løse disse avvikene er imidlertid å endre algoritmene til et databasesystemets samtidighetskontroll for å gjøre automatiske deteksjoner og forhindringer av avvik fra øyeblikksbildeisolasjon ved kjøretid. Dette kan gjøres for viktige eller vilkårlige applikasjoner, men gir isolering som er serialiserbar.
Nyere SQL-servere har vært i stand til å introdusere nye nivåer av isolasjon så vel som nye nivåer av øyeblikksbildeisolering for å forbedre samtidigheten i visse applikasjoner. Der tidlige versjoner av SQL-serveren brukte låsing som grunnlag for samtidighet, er øyeblikksbildeisolering avhengig av forbedringer av radversjonering beregnet på forbedring av ytelsen. Det forbedrer denne ytelsen når den møter scenarier med lese- eller skriveblokkering ved å unngå dem.