Titulo Estágio
Avaliação da Durabilidade: Plataformas NoSQL vs Bases de Dados Relacionais
Áreas de especialidade
Engenharia de Software
Local do Estágio
DEI-FCTUC
Enquadramento
A durabilidade é uma propriedade assegurada pelos sistemas de gestão de dados, com a qual se pretende garantir que as transações que tenham terminado se mantenham de forma permanente no sistema. É sabido que os motores transacionais (por exemplo, MySQL, Postgres, Oracle) abordam este problema de formas diferentes das bases de dados não-relacionais (por exemplo, Cassandra, HBase, OrientDB).
Neste estágio pretende-se examinar as diferenças entre as diversas plataformas NoSQL no que toca à durabilidade. Pretende-se igualmente comparar essa durabilidade com um motor tradicional, escolhendo para o efeito um dos existentes. A avaliação da durabilidade será feita com recurso a uma ferramenta desenvolvida anteriormente no DEI, e a benchmarks do domínio público tais como o YCSB.
Objetivo
O objetivo fundamental deste estágio é comparar as garantias de durabilidade dos diversos motores NoSQL, avaliando igualmente um motor transacional clássico para estabelecer um ponto de partida.
Uma benchmark tal como o YCSB será usada para exercitar o sistema, e uma ferramenta existente será aplicada ao sistema para simular cenários de falha. As bases de dados NoSQL tendem a relaxar algumas propriedades, entre as quais poderá estar a durabilidade, sendo portanto de esperar que sejam mais vulneráveis. No entanto, a durabilidade é desejada em qualquer aplicação, seja esta baseada num motor transacional ou num motor NoSQL.
Assim, pretende-se com este estágio executar diversas benchmarks sobre diversos motores de bases de dados, simular falhas com recurso a uma ferramenta existente, e classificar os resultados no que toca à durabilidade da informação armazenada no sistema.
Plano de Trabalhos - Semestre 1
- Estudo do estado da arte e das soluções atualmente existentes (mês 1).
A primeira fase consistirá em tomar contacto com as tecnologias e com as soluções atualmente existentes, incluindo motores de bases de dados e técnicas para garantia de durabilidade.
- Criação de ambiente cloud para testes e avaliações (meses 2 a 4).
Esta tarefa consiste na construção de um ambiente de testes de bases de dados, em tudo semelhante ao que se encontra na cloud. Dado que os motores NoSQL vêm a sua grande aplicabilidade à cloud, dever-se-á ter especial cuidado em correr os motores de bases de dados num ambiente o mais realista possível. Esta tarefa inclui a integração da ferramenta existente para simulação de falhas.
- Escrita do relatório intermédio (mês 5).
Dever-se-á apresentar as tarefas efectuadas durante o primeiro semestre e descrever o trabalho a realizar no segundo semestre, escrevendo para esse efeito um relatório intermédio e preparando uma apresentação pública para discussão.
Plano de Trabalhos - Semestre 2
- Desenho e preparação das experiências (meses 6 e 7).
Nesta tarefa ir-se-á instalar e configurar os motores NoSQL selecionados, bem como as benchmarks escolhidas, com vista a executar experiências que permitam medir a durabilidade garantida por cada motor.
- Medição experimental da durabilidade (meses 8 e 9).
Esta tarefa consiste em executar as experiências desenhadas na tarefa anterior, bem como na análise dos resultados obtidos.
- Escrita do relatório final (mês 10).
O estagiário deve apresentar todo o trabalho levado a cabo no decorrer
do estágio. Para tal, deverá escrever uma tese descrevendo o problema
e a sua solução, bem como preparar a sua apresentação e discussão
pública.
Condições
O trabalho irá ser realizado no Departamento de Engenharia Informática da Universidade de Coimbra e será facultado o acesso a equipamento informático bem como aos laboratórios do DEI.
Observações
Dar-se-á preferência a alunos que tenham tido um bom desempenho às disciplinas no âmbito do trabalho proposto (nomeadamente Bases de Dados, Sistemas Operativos, e disciplinas do Mestrado tais como Sistemas de Gestão de Dados).
Orientador
Raul Barbosa e Jorge Bernardino
rbarbosa@dei.uc.pt 📩