lawmercado / ufrgs-inf01151-server Goto Github PK
View Code? Open in Web Editor NEWThe server of the final assignment from Operational Systems II module. Currently in the first phase.
License: GNU General Public License v3.0
The server of the final assignment from Operational Systems II module. Currently in the first phase.
License: GNU General Public License v3.0
O servidor implementado na Parte I, caso venha a falhar, levará à indisponibilidade de serviço para seus
clientes. Este é um estado que não é desejável no sistema. Para aumentar a disponibilidade do sistema
na ocorrência de falhas do servidor principal, um novo servidor deverá assumir o seu papel e manter o
serviço de gerenciamento de arquivos funcionando. Note que essa mudança deve ser transparente para
os usuários e seus arquivos devem manter-se disponíveis, mesmo após a falha. Para garantir que as
modificações de arquivos estarão disponíveis em um novo servidor, você deverá utilizar um esquema de
replicação, informando todas as modificações realizadas aos servidores secundários.
Implementar um esquema de Replicação Passiva, onde o servidor é representado por uma instância primária de réplica manager (RM), e uma ou mais instâncias de RM secundárias (ou backup). Podemos entender este modelo adicionando um front-end (FE) entre a comunicação do cliente (C) e o conjunto de RMs. O front-end é responsável por realizar a comunicação entre os clientes e o serviço de replicação, tornando transparente para o cliente qual é a cópia primária do servidor
Seu esquema precisará garantir que:
(1) todos os clientes sempre utilizarão a mesma cópia primária;
(2) após cada operação, o RM primário irá propagar o estado dos arquivos aos RMs de backup;
(3) somente após os backups serem atualizados o primário confirmará a operação ao cliente.
Algoritmos de eleição de líder permitem escolher, dentro de um conjunto de processos distribuídos, qual processo deve desempenhar um papel particular (e.g., coordenador, alocador de recursos, verificador, etc). Algoritmos de eleição de líder são muito usados como parte de outros algoritmos distribuídos, que exigem a escolha de um processo para desempenhar um papel especifico.
Na primeira parte do trabalho, assumiu-se a existência de um único servidor Dropbox. Agora, no entanto, como diferentes processos potencialmente poderão assumir o papel de servidor primário, o processo escolhido em questão deverá ser selecionado através de um dos algoritmos de eleição de líder vistos em aula2: algoritmo do anel ou algoritmo do valentão.
Quando o servidor principal falhar, o algoritmo de eleição de líder deverá ser utilizado para determinar o
próximo servidor primário. Nesse caso, um dos servidores backup deverá assumir essa função, mantendo um estado consistente do sistema. Para isso, implemente um dos algoritmos vistos em aula para eleger um novo RM primário após uma falha. Lembre-se de garantir que seu mecanismo atualize as
informações sobre o novo líder nos FE dos clientes.
Quando o arquivo é deletado no sync_dir do client, o arquivo não é deletado no diretório do respectivo client no servidor.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.