Na computação, o problema do Halloween refere -se a um fenômeno em bancos de dados nos quais uma operação de atualização causa uma alteração na localização física de uma linha, potencialmente permitindo que a linha seja visitada mais de uma vez durante a operação. Isso pode até causar um loop infinito em alguns casos em que as atualizações colocam continuamente o registro atualizado antes da verificação que executa a operação de atualização.
O potencial para esse erro de banco de dados foi descoberto pela primeira vez por Don Chamberlin, Pat Selinger e Morton Astrahan em 1976, no dia do Halloween, enquanto trabalhava em uma consulta que deveria dar um aumento de dez % a todos os funcionários que ganhavam menos de US $ 25.000. Essa consulta seria executada com sucesso, sem erros, mas quando terminou todos os funcionários do banco de dados ganhou pelo menos US $ 25.000, porque continuava aumentando até que atinjam esse nível. A expectativa era que a consulta iterasse sobre cada um dos registros do funcionário com um salário inferior a US $ 25.000 exatamente uma vez. De fato, como mesmo os registros atualizados eram visíveis para o mecanismo de execução da consulta e, portanto, continuaram a corresponder aos critérios da consulta, os registros salariais correspondiam várias vezes e cada vez recebendo um aumento de 10% até que todos fossem maiores que US $ 25.000.
O nome não é descritivo da natureza do problema, mas foi dado devido ao dia em que foi descoberto. Conforme contado por Don Chamberlin:
Pat e Morton descobriram esse problema no Halloween ... Lembro que eles entraram no meu escritório e disseram: "Chamberlin, veja isso. Temos que garantir que, quando o otimizador estiver fazendo um plano para processar uma atualização, ele não Use um índice baseado no campo que está sendo atualizado. Como vamos fazer isso? " Aconteceu em uma sexta -feira e dissemos: "Ouça, não poderemos resolver esse problema esta tarde. Vamos apenas dar um nome. Vamos chamá -lo de problema de Halloween e trabalharemos em na próxima semana. " E acontece que é chamado isso desde então.
Este artigo relacionado ao banco de dados é um stub. Você pode ajudar a Wikipedia expandindo -a.