Conclusão sobre os modelos de sistemas distribuídos. Então, nesse instante, nós estamos juntos no momento de encontro da disciplina de banco de dados com a disciplina de sistemas distribuídos, que é um belo momento. Então, vamos às considerações finais sobre essas duas histórias que eu contei para vocês. A primeira história, o problema dos dois generais, e a segunda história, o problema dos generais bizantinos. Bom, acredito que ficou claro que o problema dos generais, que é a comunicação do momento de ataque, refere aqui ao modelo de redes. E o problema dos generais bizantinos se refere ao modelo de comportamento do nó. Então, em sistemas reais, nós já sabemos e vivemos no dia a dia, nas nossas organizações, que tanto a rede quanto o hardware desses nós podem falhar. tanto a rede quanto o hardware desses nós podem falhar. Então, os modelos de sistemas distribuídos consistem em decisões ou premissas para rede, o nó e sincronia. Ou seja, o que fazer se não conseguir ter mensagens, perda de mensagens? mensagens, perda de mensagens, o que fazer em falha de um nó ou ausência de um nó e o que fazer com latência, com demora no tempo de resposta ou no tempo de comunicação entre os participantes de uma transação. E com isso, nós vamos perceber que, do ponto de vista de rede, nós temos links que são confiáveis, links perfeitos, extremamente difíceis de encontrar 100% do tempo, então temos que pensar o quão confiável é o meio de comunicação que nós temos entre os nossos. nós temos links que vão ter alguma perda, fair loss, então algumas mensagens serão perdidas, porém na insistência, se repetir bastante as mensagens, em algum momento você consegue alcançar o objetivo com outro nó. E também nós vamos ter os links arbitrários adversos, então a gente entraria naquela situação em que houve um comprometimento do meio de comunicação e as mensagens foram substituídas por outras mensagens maliciosas ou simplesmente foram atrasadas ou até mesmo foram interrompidas. Se o nó falhar, então acontece uma parada da transação. Se o nó falhar, então este nó pode se recuperar e dar continuidade. E se violar o seu algoritmo, então o nó está falho, que é a questão bizantina. Aqui nós temos o conceito bizantino aplicado à violação das regras que aquele nó precisa seguir no seu comportamento. E o terceiro pilar, que é a sincronia, então nós temos as transações com operações síncronas, nós temos transações parcialmente síncronas e teremos transações assíncronas. Então, aqui nós vamos ter as bases para os algoritmos distribuídos. Para cada um destes pilares, nós vamos escolher um comportamento. E é o que nós vamos perceber na implementação dos sistemas de gerenciamento de banco de dados que são distribuídos. que são distribuídos, precisam tomar decisões em cima desses três pilares e acabam escolhendo ou favorecendo em determinado momento, em determinado contexto, um destes comportamentos para cada um dos pilares, em detrimento dos demais.