Uma arquitetura híbrida para o suporte de protocolos distribuídos tolerantes a falhas. - BRITO, Andrey Elísio Monteiro. (2004)
A maioria das infra-estruturas disponíveis para implantação de aplicações distribuídas são caracterizadas pela ausência de limites superiores conhecidos nos atrasos de transmissão de mensagens e de escalonamento de processos, i.e. elas são sistemas assíncronos. Esses sistemas são tidos como o melhor ambiente para o desenvolvimento de aplicações devido à portabilidade e escalabilidade decorrente da falta de considerações temporais fortes sobre o sistema. Entretanto, alguns dos mais fundamentais problemas dos sistemas distribuídos não podem ser resolvidos nesses sistemas quando estes estão sujeitos a falhas. Os sistemas síncronos, por outro lado, permitem soluções triviais para os problemas básicos dos sistemas distribuídos tolerantes a falhas. Isso acontece porque eles garantem um atraso máximo conhecido no escalonamento de processos e nos atrasos na transmissão de mensagens. Entretanto, a maior parte dos sistemas práticos não são síncronos, e isso motivou a criação de modelos intermediários entre esse dois tipos, chamados de modelos parcialmente síncronos. Um dos mais populares modelos parcialmente síncronos é o modelo assíncrono equipado com detectores de falhas não confiáveis. Neste modelo cada processo possui acesso a um módulo que pode fornecer informações sobre quais processos falharam. Entre os detectores de falhas propostos, o detector de falhas com semântica perfeita é o mais forte e o único que não comete erros (por exemplo, suspeitando de processos que não falharam). Infelizmente, detectores de falhas perfeitos só podem ser implementados em sistemas síncronos. Como algumas aplicações exigem detectores de falhas perfeito, estes detectores têm recebido uma crescente atenção na literatura. Para implementá-los, subsistemas síncronos de capacidade bastante limitada têm sido desenvolvidos sob o sistema parcialmente síncrono onde as aplicações executam. Este trabalho detalha a implementação de um subsistema síncrono em um ambiente assíncrono formado por uma rede de PCs conectados por uma rede local e executando um sistema operacional de prateleira. Finalmente, embora a implementação de detectores de falhas perfeitos, por si só justifique a implementação de um subsistema síncrono, nós acreditamos que abstrações mais fortes que os detectores de falhas perfeitos podem ser desenvolvidas. Apresentamos uma destas abstrações, o Compilador de Estados Globais, que possibilita soluções mais rápidas para o problema do consenso, onde vários processos tentam entrar em acordo sobre um valor proposto.