Mikä on tilannekuvan eristäminen?

Yksittäiskuvan eristäminen on tapahtumien käsittelyssä ja tietokannoissa oleva ominaisuus, joka takaa, että kaikki tapahtumaan tehdyt lukemat näkevät saman tietokannan “tilannekuvan”. Tämä tarkoittaa, että tapahtuma sitoutuu käsittelemään pyynnön onnistuneesti, jos sen päivitykset eivät ole ristiriidassa muiden samanaikaisten päivitysten kanssa. Yksittäiskuvan eristäminen on useiden versioiden samanaikaisuuden ohjausalgoritmi, joka tarjoaa eristystasoja, jotka estävät samanaikaisuuden kanssa yleisesti esiintyvät ongelmat. Tämä eristäminen on toteutettu useilla erilaisilla strukturoitujen kyselykielen (SQL) palvelimilla, jotka toimivat minimaalisilla sarjamuotoisilla poikkeavuuksilla. Yksittäiskuvan eristäminen ei kuitenkaan takaa palvelimen täydellistä sarjoitettavuutta.

Monet suuret tiedonhallintajärjestelmät sisältävät oletuseristystasoja, joita ei voida sarjoittaa, ja ne kohtaavat usein epäsäännöllisyyttä sarjoittamisessa ilman tilannekuvan eristystä. Tämä voi aiheuttaa suurissa järjestelmissä lukuisia eristysvirheitä päivittäin, mikä voi johtaa tietojen vioittumiseen, etenkin tietovarastojen sovelluksiin. Järjestelmä saattaa toimia tässä tilassa, koska sovellukset, jotka toimivat alhaisemmalla eristystasolla, voivat parantaa tehokkuutta, jos vakavia virheitä ei tapahdu. Tilannekuvan eristämisen sisällyttäminen järjestelmään vähentää näitä poikkeavuuksia ja – kun otetaan huomioon toiminta -aika ja esiintyvien virheiden määrä – lisää tehokkuutta entisestään.

Jotkut tietokannat tarjoavat tilannekuvan eristämisen täydelliseen sarjallistettavuuteen nähden, mutta on myös poikkeavuuksia, joita voi esiintyä tietokannassa, jossa käytetään tällaista eristystä. Nämä poikkeavuudet voivat johtaa tietojen johdonmukaisuusrikkomuksiin, koska johdonmukaisuutta ylläpitävät tapahtumat limittyvät tai on järjestetty vuorotteleviin kerroksiin. Yksi tapa ratkaista ongelma ja estää tällaiset poikkeamat on manipuloida sovelluksia ottamalla käyttöön keinotekoisia lukkoja ja ristiriitaisia ​​päivityksiä, joita seurasi jokaisen tapahtumaparin välisten ristiriitojen analysointi. Toinen tapa ratkaista nämä poikkeavuudet on kuitenkin muokata tietokantajärjestelmän rinnakkaisuudensäädön algoritmeja automaattisten havaintojen ja tilannekuvan eristämisen epämuodostumien estämiseksi suorituksen aikana. Tämä voidaan tehdä tärkeille tai mielivaltaisille sovelluksille, mutta tarjoaa eristämisen, joka on sarjoitettavissa.

Uudemmat SQL -palvelimet ovat pystyneet ottamaan käyttöön uusia eristystasoja sekä uusia tilannekuvan eristämisen tasoja, jotta voidaan parantaa samanaikaisuutta tietyissä sovelluksissa. Jos SQL -palvelimen varhaiset versiot käyttivät lukitusta rinnakkaisuuden perustana, tilannekuvan eristäminen riippuu suorituskyvyn parantamiseen tarkoitettujen riviversioiden parannuksista. Se parantaa tätä suorituskykyä, kun se kohtaa skenaarioita, joissa luku- tai kirjoitusesto estetään välttämällä niitä.