Halloweenowy problem
W informatyce problem Halloween odnosi się do zjawiska w bazach danych , w którym operacja aktualizacji powoduje zmianę fizycznej lokalizacji wiersza, potencjalnie umożliwiając ponowne odwiedzenie wiersza później w ramach tej samej operacji aktualizacji. Może to nawet spowodować nieskończoną pętlę w niektórych przypadkach, gdy aktualizacje nieustannie umieszczają zaktualizowany rekord przed skanowaniem wykonującym operację aktualizacji.
Potencjał tego błędu bazy danych został po raz pierwszy odkryty przez Don Chamberlina , Pata Selingera i Mortona Astrahana w 1976 roku, w dzień Halloween , podczas pracy nad zapytaniem, które miało zapewnić dziesięcioprocentową podwyżkę każdemu pracownikowi, który zarobił mniej niż 25 000 USD. To zapytanie wykonałoby się pomyślnie, bez błędów, ale po zakończeniu wszyscy pracownicy w bazie danych zarobiliby co najmniej 25 000 $, ponieważ dawało im podwyżki, dopóki nie osiągnęli tego poziomu. Oczekiwano, że zapytanie wykona iterację każdego rekordu pracownika z wynagrodzeniem niższym niż 25 000 USD dokładnie raz. W rzeczywistości, ponieważ nawet zaktualizowane rekordy były widoczne dla mechanizmu wykonywania zapytań, a więc nadal odpowiadały kryteriom zapytania, rekordy wynagrodzeń były wielokrotnie dopasowywane i za każdym razem otrzymywały 10% podwyżki, aż wszystkie przekraczały 25 000 USD.
Nazwa nie opisuje charakteru problemu, ale została nadana ze względu na dzień, w którym został wykryty. Jak opowiadał Don Chamberlin:
Pat i Morton odkryli ten problem w Halloween... Pamiętam, że przyszli do mojego biura i powiedzieli: „Chamberlin, spójrz na to. Musimy się upewnić, że kiedy optymalizator opracowuje plan przetwarzania aktualizacji, nie użyj indeksu opartego na aktualizowanym polu. Jak mamy to zrobić?” Zdarzyło się to w piątek i powiedzieliśmy: „Słuchaj, nie będziemy w stanie rozwiązać tego problemu dziś po południu. Nadajmy mu nazwę. Nazwijmy go Problemem Halloween i będziemy nad nim pracować. to w przyszłym tygodniu”. I okazuje się, że od tamtej pory tak się nazywa.
- Zjazd SQL w 1995 r. (Protokoll)
- „Halloweenowy problem” dla interfejsów API XML , blog Mike'a Championa.
- (archiwum) Zapytanie w dobrej wierze i problem Halloween , Los Alamos National Laboratory, Anegdoty, IEEE Annals of the History of Computing