Co to jest asynchronia i dlaczego występuje?
Asynchronia to zjawisko polegające na opóźnieniu czasowym pomiędzy dwoma działaniami lub procesami. Może się to zdarzyć z różnych powodów, takich jak złożoność interakcji między urządzeniami i składnikami oprogramowania, długie obliczenia, opóźnienia w sieci lub opóźnienia spowodowane błędem ludzkim. Asynchronia to sytuacja, w której niektóre operacje blokują inne, oczekujące na ich wykonanie w kolejce wykonania. Na przykład zwykle dzieje się to w relacyjnym systemie DBMS podczas wykonywania DML (Data Manipulation Language) - operacji modyfikacji danych (UPDATE, DELETE, INSERT). Uważa się je za „blokujące”, tj. zawieszanie innych operacji dostępowych do bazy danych do czasu zakończenia ich pracy.
> Rozważ konsekwencje asynchronii – gdy próbujesz wykonać dwa silnie niezależne zapytania względem tej samej tabeli w tej samej aplikacji: 1. Pierwsze zapytanie aktualizuje jeden wiersz w tabeli z trzema polami. 2. Drugie zapytanie porównuje nazwę miasta i kwotę w operacji tabeli UPDATE. 3. W rezultacie dochodzi do wypadku, w zależności od stopnia przygotowania jego kodu, jego architektury i poziomu wiedzy programisty odpowiedzialnego za ten kod. Te same programy mogą działać normalnie na jednym komputerze, ale nie działać na innym. Przyczyny niepowodzeń są różne: od przekroczenia limitu obciążenia po fizyczne wyczerpanie się pamięci RAM. W tym przypadku, jeśli na przykład weźmiesz program napisany w czystym języku C (bez frameworka SQL), zmodyfikujesz go pod kątem zapytań Access i przeniesiesz program na inny komputer z systemem Windows XP, otrzymasz