Snapshot Isolation (SI) är en multiversion concurrency control algoritm, först beskrivs i Berenson et al. [1995]................................................................. SI är attraktivt eftersom det ger en isoleringsnivå som undviker många av de gemensamma överensstämmelse anomalier, och har genomförts av Oracle och Microsoft SQL Server (med vissa mindre variationer). SI garanterar inte serialisering i samtliga fall, men TPC-C-riktmärkesapplikationen [TPC-C], t.ex., körs under SI utan serialiseringsanomalier. Alla stora databassystem produkter levereras med standard icke-serializable isoleringsnivåer, ofta de som stöter på serialization anomalier oftare än SI, och vi misstänker att många isoleringsfel inträffar varje dag på många stora platser på grund av detta, vilket leder till korrupta data ibland noteras i datalager applikationer. Det klassiska skälet till lägre isoleringsnivåer är att tillämpningar kan köras under sådana nivåer för att förbättra effektiviteten när det kan visas att de inte leder till allvarliga fel, men få eller inga riktlinjer har erbjudits programföretag och DBA av leverantörer om hur sådana fel kan undvikas. Denna artikel utvecklar en teori som karakteriserar när icke-serialiseringsbara exekveringar av tillämpningar kan ske under SI. I slutet av artikeln tillämpar vi denna teori för att visa att TPC-C-riktmärkesapplikationen inte har några serialiseringsanomalier under SI, och sedan diskutera hur denna demonstration kan generaliseras till andra applikationer. Vi presenterar också en diskussion om hur man kan ändra programlogiken hos program som inte kan seserialiserbara under SI så att serializability kommer att garanteras.
Fekete m.fl. REF presenterar ett tillvägagångssätt som karakteriserar icke-serialiseringsbara utföranden för en viss applikation när den körs under SI.
Making snapshot isolation serializable
{'venue': 'TODS', 'journal': None, 'mag_field_of_study': ['Computer Science']}