Skip to main content

Co to jest kontrola współbieżności?

W programowaniu zarządzania danymi kontrola współbieżności jest mechanizmem zaprojektowanym w celu zapewnienia, że dokładne wyniki są generowane przez współbieżne operacje.Wyniki te należy również uzyskać w odpowiednim czasie.Kontrola współbieżności jest bardzo często widoczna w bazach danych, w których można uzyskać pamięć podręczną informacji do wyszukiwania.

Programiści próbują zaprojektować bazę danych w taki sposób, że ważny wpływ transakcji na współdzielone dane będzie seryjnie równoważny.Oznacza to, że dane, które sprawiają, że kontakt z zestawami transakcji byłby w określonym stanie, w którym wyniki można uzyskać, jeśli wszystkie transakcje wykonają serialnie i w określonej kolejności.Czasami dane te są nieprawidłowe w wyniku modyfikacji dwóch transakcji, jednocześnie.

Istnieje wiele sposobów zapewnienia, że transakcje wykonują jedną po drugiej, w tym korzystanie z wzajemnego wykluczenia, a także stworzenie zasobu, który decyduje, które transakcje majądostęp.Jest to jednak Overkill i nie pozwoli programistowi skorzystać z kontroli współbieżności w systemie rozproszonym.Kontrola współbieżności umożliwia jednoczesne wykonywanie wielu transakcji, jednocześnie utrzymując te transakcje z dala od siebie, zapewniając linearyzację.Jednym ze sposobów wdrożenia kontroli współbieżności jest wykorzystanie wyłącznej blokady konkretnego zasobu do wykonywania transakcji szeregowych, które udostępniają zasoby.Transakcje zablokują obiekt przeznaczony do użycia, a jeśli jakaś inna transakcja składa żądanie zablokowanego obiektu, transakcja ta musi czekać, aż obiekt odblokuje.

Wdrożenie tej metody w systemach rozproszonych obejmuje menedżerów blokady i mdash;serwery, które wydają zamki zasobów.Jest to bardzo podobne do serwerów dla scentralizowanych wzajemnych wykluczeń, w których klienci mogą żądać zamków i wysyłać wiadomości do wydania zamków na określonym zasobie.Zachowanie seryjnego wykonywania jest jednak nadal konieczne do kontroli współbieżności.Jeśli dwie oddzielne transakcje uzyskują dostęp do podobnego zestawu obiektów, wyniki muszą być podobne i jakby te transakcje zostały wykonane w określonej kolejności.Aby zapewnić zamówienie dostępu do zasobu, wprowadzono dwufazowe blokowanie, co oznacza, że transakcje nie są dozwolone nowe zamki po uwolnieniu oddzielnego zamka.

W dwufazowym blokowaniu do kontroli współbieżności, jego początkowa faza jest uważana za rosnącą rosnącąFaza, w której transakcja nabywa potrzebną zamek.Kolejna faza jest uważana za fazę kurczącą się, w której transakcja uwolniła swoje zamki.Istnieją problemy z tego rodzaju blokowaniem.Jeśli transakcje przerywają, inne transakcje mogą wykorzystywać dane z obiektów zmodyfikowanych i odblokowanych przez przerwane transakcje.Spowodowałoby to przerwanie innych transakcji.