Kaj je izolacija posnetkov?

Izolacija posnetkov je lastnost pri obdelavi transakcij in baze podatkov, ki zagotavlja, da vsi odčitki, izvedeni v transakciji, vidijo isti “posnetek” baze podatkov. To pomeni, da se bo transakcija zavezala, da bo uspešno obdelala zahtevo, če njene posodobitve niso v nasprotju z drugimi sočasnimi posodobitvami. Izolacija posnetkov je kontrolni algoritem za sočasnost v več različicah, ki zagotavlja ravni izolacije, ki se izognejo težavam, ki se običajno pojavljajo pri vzporednosti. To izolacijo je implementiralo več različnih strežnikov v jeziku strukturiranih poizvedb (SQL), ki delujejo z minimalnimi količinami serializacijskih anomalij. Izolacije posnetkov pa ne bodo zagotovile popolne serializacije v strežniku.

Številni večji sistemi za upravljanje podatkov vsebujejo privzete ravni izolacije, ki jih ni mogoče serializirati in pogosto naletijo na anomalije serializacije brez izolacije posnetkov. To lahko povzroči, da se v velikih sistemih vsak dan pojavljajo številne napake pri izolaciji, kar lahko povzroči poškodovanje podatkov, zlasti tistih, ki jih najdemo v aplikacijah skladišča podatkov. Razlog, zakaj bi sistem lahko deloval v tem stanju, je, ker lahko aplikacije, ki delujejo na nižjih ravneh izolacije, izboljšajo učinkovitost, če ne pride do resnih napak. Vključitev izolacije posnetkov v sistem zmanjša te anomalije in — ob upoštevanju časa delovanja in količine napak, ki se pojavijo — še poveča učinkovitost.

Nekatere baze podatkov ponujajo izolacijo posnetkov v nasprotju s popolno serijsko možnostjo, vendar obstajajo tudi anomalije, ki se lahko pojavijo v bazi podatkov, ki uporablja to vrsto izolacije. Te anomalije lahko povzročijo kršitve skladnosti podatkov, ker se transakcije, ki ohranjajo doslednost, prepletajo ali so razporejene v izmeničnih slojih. Eden od načinov za rešitev problema in preprečevanje takšnih anomalij je manipuliranje aplikacij z uvedbo umetnih ključavnic in nasprotujočih si posodobitev, čemur je sledila analiza konfliktov med vsakim parom transakcij. Drugačen način za odpravo teh anomalij pa je spreminjanje algoritmov nadzora sočasnosti sistema baze podatkov za samodejno odkrivanje in preprečevanje anomalij izolacije posnetkov med izvajanjem. To je mogoče storiti za pomembne ali poljubne aplikacije, vendar zagotavlja izolacijo, ki jo je mogoče serificirati.

Novejši strežniki SQL so lahko uvedli nove ravni izolacije, pa tudi nove ravni izolacije posnetkov za izboljšanje sočasnosti v določenih aplikacijah. Če so zgodnje različice strežnika SQL uporabljale zaklepanje kot osnovo za sočasnost, je izolacija posnetkov odvisna od izboljšav različice vrstic, namenjenih izboljšanju zmogljivosti. Izboljša to zmogljivost, ko naleti na scenarije z blokiranjem branja ali pisanja, tako da se jim izogne.