Kas yra momentinio vaizdo izoliavimas?

Momentinės nuotraukos izoliavimas yra operacijų apdorojimo ir duomenų bazių ypatybė, užtikrinanti, kad visi transakcijoje atlikti nuskaitymai matys tą pačią duomenų bazės momentinę nuotrauką. Tai reiškia, kad operacija įsipareigoja sėkmingai apdoroti užklausą, jei jos naujinimai neprieštaraus jokiems kitiems tuo pačiu metu atliekamiems naujinimams. Snapshot izoliacija yra kelių versijų lygiagretumo valdymo algoritmas, suteikiantis izoliacijos lygius, kurie leidžia išvengti problemų, kurios dažniausiai kyla dėl lygiagretumo. Šią izoliaciją įgyvendino keli skirtingi struktūrinės užklausos kalbos (SQL) serveriai, veikiantys su minimaliais serializacijos anomalijomis. Tačiau momentinių nuotraukų izoliavimas negarantuoja visiško serializavimo serveryje.

Daugelyje pagrindinių duomenų valdymo sistemų yra numatytieji izoliavimo lygiai, kurių negalima serializuoti ir dažnai susiduriama su serializacijos anomalijomis be momentinės nuotraukos izoliavimo. Dėl to didelėse sistemose kiekvieną dieną gali atsirasti daug izoliavimo klaidų, dėl kurių gali būti sugadinti duomenys, ypač tie, kurie randami duomenų saugyklose. Priežastis, kodėl sistema gali veikti tokioje būsenoje, yra ta, kad programos, veikiančios žemesniu izoliacijos lygiu, gali pagerinti efektyvumą, jei neįvyksta rimtų klaidų. Įtraukus momentinės nuotraukos izoliaciją į sistemą, šios anomalijas sumažinamos ir, atsižvelgiant į veikimo laiką bei pasitaikančių klaidų skaičių, dar labiau padidėja efektyvumas.

Kai kurios duomenų bazės siūlo momentinių nuotraukų izoliavimą, o ne visišką serializavimą, tačiau yra ir anomalijų, kurios gali atsirasti duomenų bazėje, naudojant tokio tipo izoliaciją. Dėl šių nukrypimų gali atsirasti duomenų nuoseklumo pažeidimų, nes nuoseklumą palaikančios operacijos persipina arba yra išdėstytos kintamaisiais sluoksniais. Vienas iš būdų išspręsti problemą ir išvengti tokių anomalijų yra manipuliuoti programomis įvedant dirbtinius užraktus ir prieštaraujančius atnaujinimus, po kurių buvo analizuojami konfliktai tarp kiekvienos operacijų poros. Tačiau kitas būdas išspręsti šias anomalijas yra modifikuoti duomenų bazės sistemos lygiagretumo valdymo algoritmus, kad būtų galima automatiškai aptikti ir užkirsti kelią momentinės nuotraukos izoliavimo anomalijomis vykdymo metu. Tai galima padaryti svarbioms arba savavališkoms programoms, tačiau užtikrinama izoliacija, kurią galima nuosekliai naudoti.

Naujesni SQL serveriai galėjo įdiegti naujus izoliacijos lygius ir naujus momentinės nuotraukos izoliavimo lygius, kad būtų pagerintas tam tikrų programų lygiagretumas. Jei ankstyvosiose SQL serverio versijose buvo naudojamas užrakinimas kaip lygiagretumo pagrindas, momentinės nuotraukos izoliavimas priklauso nuo eilučių versijų kūrimo patobulinimų, skirtų našumui pagerinti. Jis pagerina šį našumą, kai susiduria su skaitymo ar rašymo blokavimo scenarijais, jų išvengiant.