Wat is momentopname-isolatie?
Snapshot-isolatie is een eigenschap in transactieverwerking en databases die garanderen dat alle lezingen die in een transactie worden gemaakt, dezelfde database "snapshot" zien. Dit betekent dat de transactie zich ertoe verbindt het verzoek met succes te verwerken als de updates ervan niet conflicteren met andere gelijktijdige updates. Snapshot-isolatie is een besturingsalgoritme voor meervoudige gelijktijdigheid dat isolatieniveaus biedt die de problemen voorkomen die vaak voorkomen bij gelijktijdigheid. Deze isolatie is geïmplementeerd door verschillende SQL-servers (gestructureerde query-taal), die werken met minimale hoeveelheden serialisatie-anomalieën. Snapshot-isolatie garandeert echter geen volledige serialisatie op een server.
Veel belangrijke gegevensbeheersystemen bevatten standaard isolatieniveaus die niet serialiseerbaar zijn en vaak te maken krijgen met anomalieën van serialisatie zonder momentopname-isolatie. Dit kan ertoe leiden dat grote systemen elke dag meerdere isolatiefouten optreden, wat kan leiden tot gegevensbeschadiging, vooral dat wat wordt gevonden in magazijntoepassingen van gegevens. De reden waarom een systeem in deze status kan werken, is omdat toepassingen die op lagere isolatieniveaus worden uitgevoerd, de efficiëntie kunnen verbeteren als er geen ernstige fouten optreden. Het opnemen van momentopname-isolatie in een systeem vermindert deze afwijkingen en - bij het nemen van bedrijfstijd en het aantal fouten dat zich voordoet - verhoogt de efficiëntie nog verder.
Sommige databases bieden momentopname-isolatie in tegenstelling tot volledige serialisatie, maar er zijn ook anomalieën die kunnen optreden binnen een database met dit type isolatie. Deze afwijkingen kunnen leiden tot schendingen van de gegevensconsistentie, omdat transacties die de consistentie handhaven, doorschieten of in afwisselende lagen zijn gerangschikt. De enige manier om het probleem op te lossen en dergelijke afwijkingen te voorkomen, is door toepassingen te manipuleren met een introductie van kunstmatige vergrendelingen en conflicterende updates, die werden gevolgd door een analyse van de conflicten tussen elk paar transacties. Een andere manier om deze afwijkingen op te lossen, is echter om de algoritmen van de concurrency control van een databasesysteem aan te passen om automatische detectie en preventie van anomalieën van momentopname-isolatie uit te voeren. Dit kan worden gedaan voor belangrijke of willekeurige toepassingen, maar biedt isolatie die serienummerbaar is.
Nieuwere SQL-servers hebben nieuwe isolatieniveaus kunnen introduceren, evenals nieuwe niveaus van momentopname-isolatie voor het verbeteren van gelijktijdigheid in bepaalde toepassingen. Waar vroege versies van de SQL-server vergrendeling als basis voor gelijktijdigheid gebruikten, is momentopname-isolatie afhankelijk van verbeteringen van rijversies die bedoeld zijn om de prestaties te verbeteren. Het verbetert deze prestaties wanneer het scenario's tegenkomt met lezen of schrijven blokkeren door ze te vermijden.