Co je to izolace snímku?
Izolace snímku je vlastnost ve zpracování transakcí a databáze, které zaručují, že všechna čtení provedená v transakci vidí stejnou databázi „snímek“. To znamená, že se transakce zaváže k úspěšnému zpracování požadavku, pokud jeho aktualizace nejsou v rozporu s jinými souběžnými aktualizacemi. Izolace snímku je řídicí algoritmus pro souběžnost ve více verzích, která poskytuje úrovně izolace, které se vyhýbají problémům, které se běžně vyskytují se souběžností. Tato izolace byla implementována několika různými servery strukturovaného dotazovacího jazyka (SQL), pracujícími s minimálním množstvím anomálií serializace. Izolace snímků však nezaručují úplnou serializovatelnost na serveru.
Mnoho hlavních systémů správy dat obsahuje výchozí úrovně izolace, které nejsou serializovatelné a často se setkávají s anomáliemi serializace bez izolace snímků. To může způsobit, že velké systémy budou mít každý den četné chyby izolace, což může vést k poškození dat, zejména těch, které se nacházejí ve skladových aplikacích dat. Důvod, proč by systém mohl fungovat v tomto stavu, je ten, že aplikace, které běží na nižších úrovních izolace, mohou zlepšit účinnost, pokud nedojde k závažným chybám. Zahrnutí izolace snímku do systému tyto anomálie sníží a - při zohlednění doby provozu a množství chyb, které se vyskytnou - zvyšuje účinnost ještě více.
Některé databáze nabízejí izolaci snímků na rozdíl od plné serializovatelnosti, ale v databázi využívající tento typ izolace se mohou vyskytnout také anomálie. Tyto anomálie mohou vést k narušení konzistence dat, protože transakce, které udržují prokládání konzistentnosti, nebo jsou uspořádány ve střídavých vrstvách. Jedním ze způsobů, jak vyřešit problém a zabránit takovým anomáliím, je manipulace s aplikacemi zavedením umělých zámků a konfliktních aktualizací, po nichž následovala analýza konfliktů mezi každou dvojicí transakcí. Jiný způsob, jak tyto anomálie vyřešit, je však upravit algoritmy řízení souběžnosti databázového systému tak, aby se prováděly automatické detekce a prevence anomálií izolace snímku za běhu. To lze provést pro důležité nebo libovolné aplikace, ale poskytuje izolaci, která je serializovatelná.
Novější servery SQL byly schopny zavést nové úrovně izolace i nové úrovně izolace snímků pro zlepšení souběžnosti v určitých aplikacích. Tam, kde dřívější verze serveru SQL používaly zamykání jako základ souběžnosti, je izolace snímku závislá na vylepšení verzování řádků určených ke zlepšení výkonu. Vylepšuje tento výkon, když narazí na scénáře s blokováním čtení nebo zápisu tím, že se jim vyhne.