Trabalho do bortoleto
Um sistema tolerante a falhas nada mais é que um sistema onde visa diminuir impactos de falhas sejam qualquer uma delas tanto em hardware ou software, é um item muito importante de qualquer sistema, ressaltando que é de suma importância que o mesmo seja construído com base nessa ideologia principalmente se esse for um sistema de grande complexidade, sendo assim imprescindível deixar de adota-la
Como a ideia de um sistema distribuído é a execução de tarefas em conjunto por vários pontos distintos, por natureza ele já é um sistema propicio para tolerância a falhas que é muito motivadora e proveitosa quando empregadas e criadas novas técnicas, um exemplo básico seria quando um Nodo de processador se perde, não resultando em uma queda do sistema todo, sendo assim essa falha pode ser facilmente contornada com o balanceamento dos demais Nodos afins de não perder performance ou disponibilidade de serviços.
“A área de tolerância a falhas em sistemas distribuídos é vasta e excitante. Garantir disponibilidade envolve solucionar problemas de consenso, ordenação e atomicidade na troca de mensagens entre grupos de processos, sincronizar relógios quando necessário, implementar réplicas consistentes de objetos, garantir resiliência de dados e processos num ambiente sujeito a quedas de estações tantos clientes como servidores, particionamento de redes, perda e atrasos de mensagens e, eventualmente, comportamento arbitrário dos componentes do sistema.” Taisy Silva Weber. Existem diversas técnicas de tolerância a falhas, entre elas temos a NMR, TMR, 2MR. SMR, Mid-value Selection, Flux Summing, Standby Sparing, N version, etc.... . Prevenção de erros também são muito importantes, com isso temos testes de replicação, testes de tempo de resposta ou simplesmente timing, testes estruturais, teste de coerência e teste de diagnostico, enfim, trabalhar com a construção de um sistema de tolerância a falhas é um estudo muito complexo que tem muito a se desenvolver,