TOLERÂNCIA A FALTAS DISTRIBUÍDA
Licenciatura e Mestrado em Informática,
2002/2003 - 2 Semestre


Trabalho prático

Nota prévia: Este enunciado pode ser refinado, com vista a esclarecer enventuais dúvidas que apareçam durante a sua concretização.
Registo de alterações:

V1.1 (27-02-03). Comando MKDIR.


Para concretizar o trabalho, os alunos devem utilizar o sistema Appia. Este sistema fornece serviços de filiação e comunicação em grupo com diferentes propriedades e tipos de ordenação.

O trabalho pretende ilustrar alguns do problemas que se levantam ao concretizar um sistema de ficheiros distribuído e replicado. De modo a tornar o trabalho exequível no tempo disponível, o enunciado apresenta inúmeras simplificações em relação a um sistema de ficheiros real.

O sistema a concretizar será constituído por duas aplicações, a saber: uma aplicação cliente, através da qual o utilizador acede ao sistema de ficheiros, e uma aplicação servidor. Para tolerância a faltas, o servidor poderá ser replicado. A interface com o sistema de ficheiros será concretizada na aplicação cliente através de uma linha de comando. Esta aplicação aceitará os seguintes comandos:

O servidor deve recorrer ao sistema operativo subjacente para armazenar a informação, existindo total liberdade para criar os ficheiros de dados e de controlo que os alunos considerem mais adequados à concretização do trabalho.

O trabalho deve ser realizado utilizando a moldura de suporte à composição e execução de protocolos Appia. Podem também utilizar o código e ideias geradas em trabalhos dos anos anteriores. Em particular, poderão usar o sistema de comunicação em grupo e o sistema de RPCs replicados. Não hesitem em procurar esclarecimentos acerca da funcionalidades das camadas já disponíveis para não perderem tempo a concretizar funcionalidades que já estão disponíveis. Devem também ler os relatórios disponíveis, do ano lectivo de 2000/2001 ( VicenteMartins.pdf) e de 2001/2002 ( MonteiroTeixeira.pdf), que servem como exemplo do que se pretende.

Os alunos devem considerar as várias alternativas de desenho ao ser dispor: servidor com ou sem estado, replicação activa ou passiva, etc. Alerta-se os alunos que, ao gerarem o código de gestão da replicação, devem assegurar que as datas de alteração dos ficheiros ficam coerentes em todas as réplicas. O artigo deve explicar claramente quais as técnicas usadas para assegurar a coerência das réplicas e a tolerância a faltas. Deve também discutir as vantagens das soluções adoptadas em relação a outras alternativas.

Finalmente, os alunos devem também discutir, no relatório final, as alterações necessárias para suportar ficheiros de tamanho arbitrário. Estas alterações não necessitam de ser concretizadas.

Note-se que uma concretização mais realista de um sistema de ficheiro replicado implicaria, no caso do Unix, concretizar uma extensão ao sistemas de ficheiros virtual no núcleo do sistema. Esta extensão deveria concretizar a interface completa do sistema de ficheiros Unix (os alunos interessados podem rever esta matéria na bibliografia de Sistemas Operativo e de Sistemas Distribuídos).



Luís Rodrigues