Co to jest izolacja migawki?
Izolacja migawek jest właściwością w przetwarzaniu transakcji i bazach danych, które gwarantują wszystkie odczyty wykonane w transakcji, patrz ta sama baza danych „Snapshot”. Oznacza to, że transakcja zobowiązuje się do pomyślnego przetwarzania żądania, jeśli jego aktualizacje nie są sprzeczne z żadnymi innymi współbieżnymi aktualizacjami. Izolacja migawki jest algorytmem kontrolnym współbieżności wielu wersji, który zapewnia poziomy izolacji, które unikają problemów, które zwykle występują z współbieżą. Ta izolacja została zaimplementowana przez kilka różnych serwerów języka ustrukturyzowanego zapytań (SQL), działające z minimalnymi ilościami anomalii serializacji. Izolacja migawek nie gwarantuje jednak pełnej serializacji na serwerze.
Wiele głównych systemów zarządzania danymi zawiera domyślne poziomy izolacji, które nie można szeregować i często napotyka anomalie serializacji bez izolacji migawki. Może to powodować, że duże systemy mają wiele wystąpienia błędów izolacji każdego dnia, WHICH może prowadzić do uszkodzenia danych, zwłaszcza tych, które można znaleźć w aplikacjach danych magazynowych. Powodem, dla którego system może działać w tym stanie, jest to, że aplikacje działające na niższych poziomach izolacji mogą poprawić wydajność, jeśli nie wystąpią poważne błędy. Włączenie izolacji migawki w systemie zmniejsza te anomalie i - podczas poświęcania czasu operacji i liczby błędów występujących - jeszcze bardziej zwiększa wydajność.
Niektóre bazy danych oferują izolację migawki w przeciwieństwie do pełnej serializacji, ale istnieją również anomalie, które mogą wystąpić w bazie danych z wykorzystaniem tego rodzaju izolacji. Te anomalie mogą prowadzić do naruszenia spójności danych, ponieważ transakcje, które utrzymują spójność przeplatania lub są ułożone w warstwach naprzemiennych. Jednym ze sposobów rozwiązania problemu i zapobiegania takim anomalii jest manipulowanie aplikacjami za pomocą wprowadzeniasztucznych zamków i sprzecznych aktualizacji, po których nastąpiła analiza konfliktów między każdą parą transakcji. Innym sposobem rozwiązania tych anomalii jest jednak modyfikacja algorytmów kontroli współbieżności systemu bazy danych w celu automatycznego wykrywania i zapobiegania anomalii izolacji migawki w czasie wykonywania. Można to zrobić w przypadku ważnych lub dowolnych aplikacji, ale zapewnia izolację, która jest serializacyjna.
Nowsze serwery SQL były w stanie wprowadzić nowe poziomy izolacji, a także nowe poziomy izolacji migawki w celu zwiększenia współbieżności w niektórych zastosowaniach. Tam, gdzie wczesne wersje serwera SQL wykorzystywały blokowanie jako podstawę współbieżności, izolacja migawki zależy od ulepszeń wersji wiersza przeznaczonych do poprawy wydajności. Poprawia tę wydajność, gdy napotyka scenariusze z blokowaniem odczytu lub zapisu, unikając ich.