Main Page
From Mc715-1s2011
Contents |
Notas
Veja aqui as notas até o momento. Quem ainda não entregou todas as fases tem até o dia 13 de julho.
Critério de Avaliação
O projeto será dividido em fases. Para cada fase, o grupo deverá descrever o que foi feito na wiki e fazer uma apresentação oral com a presença de todos os integrantes do grupo.
Fase 1
Veja aqui o detalhamento da fase 1.
Data de entrega da fase 1: 23 de março
Peso: 25% da nota final
Propostas para a fase 2
- Melhorias no código atual da classe WriteLock
- permitir desistência do lock
- submeter versão corrigida para a comunidade ZooKeeper
- Estudo/implementação para múltiplos leitores/ único escritor
- análise do algoritmo proposto em alto nível
- proposta de algoritmos com possibilidade de controle do grau de paralelismo
- Estudo/implementação lock recursivo
- Estudo/implementação de semáforos (em Java)
Data de entrega: 04/05
Peso: 25% da nota final
Curiosidades: problemas reportados na lista de e-mails zookeeper-user:
- Problem with Write Lock
- WriteLocks and sessions (beginner) Este e-mail cita o jira ZOOKEEPER-78, no qual existe um
comentário explicando a necessidade do formato x-identifier-sequenceNumber.
Fase 3
Na fase 3, os grupos deverão escolher um tema relacionado às receitas do ZooKeeper para implementação de primitivas concorrentes. Após a escolha do tema, deverão conversar com a professora para acertar os detalhes sobre a implementação, documentação na wiki e apresentação.
Data final para entrega: 13 de julho (data do exame final)
Dúvidas
Tire suas dúvidas e/ou ajude a resolver as dúvidas dos colegas :) aqui
Formação de Grupos
Os projetos podem ser feitos individualmente ou em grupos de 2 a 4 alunos. Veja aqui a lista dos matriculados e escolha uma página para você ou para o seu grupo: Grupo01, Grupo02, Grupo03 ou Grupo04.
Tema
Vamos trabalhar com o ZooKeeper e aproveitar toda a experiência e as dicas do pessoal do semestre passado e da turma de verão.
Uma boa introdução para o projeto pode ser vista em ZooKeeper: A Distributed Coordination Service for Distributed Applications.
O ZooKeeper permite a criação de primitivas para sincronização. Na primeira parte da disciplina, vamos conhecer um pouco sobre a implementação da primitiva lock:
Será que esta primitiva está implementada corretamente?
Será que podemos contribuir para o projeto?
- Add examples for atomic operations to recipes (docs & code), chamada aberta no JIRA do projeto.
- Biblioteca de Primitivas Concorrentes uma das ideias oferecidas para o Google Summer of Code 2010. Veja um e-mail sobre como é possível contribuir nesta linha.
E as contas no cluster? Como instalar o ZooKeeper
As senhas serão enviadas para o seu e-mail no IC. Saiba mais sobre o cluster aqui. Um aspecto muito relevante do cluster é que todos os nós enxergam o mesmo sistema de arquivos!
O Grupo01 do 2s2010 fez um vídeo muito bom sobre como instalar o ZooKeeper no cluster. O Grupo13 da turma de verão de 2011 fez um texto bastante detalhado para ajudar a instalação.
Cuidado com os Zumbis e os conflitos de portas
Dois problemas recorrentes no semestre passado devem ser evitados nesse verão.
- Muitas vezes processos zumbis de servidores do ZooKeeper continuam rodando e consumindo recursos. Ainda não temos nenhum mecanismo automático para acabar com os zumbis, por isso, verifique se você não deixou nenhum processo deste tipo nas máquinas antes de deslogar.
- Cada grupo deverá escolher um conjunto distinto de portas para operar, caso contrário, erros inesperados poderão ocorrer. Registre as portas que seu grupo está trabalhando aqui Reserva de Portas.
Python
As primitivas podem ser implementadas em Python.
Veja o tutorial feito pelo Grupo03 do verão de 2011.