| Designação | Código | Curso | Regime | Regente | 
|---|
Sistemas de Armazenamento de Dados  | 16719 [ME78ME7800007356]  | Mestrado em Engenharia Informática [MEINF]  | S2  | João Tiago Medeiros Paulo  | 
Objetivos  | A UC de Sistemas de Armazenamento de Dados está organizada de forma a providenciar aos alunos, numa primeira fase, uma visão sobre os padrões e requisitos típicos de armazenamento de aplicações que lidam com grandes quantidades de dados.   Num outro prisma, é fundamental aprender qual a organização atual das infraestruturas de grande escala e dos seus recursos de armazenamento. Ao complementar esta informação com as tecnologias, arquiteturas e otimizações usadas atualmente em centros de dados, é possível perceber em profundidade as várias camadas de armazenamento e o fluxo de pedidos de E/S desde a aplicação até aos dispositivos de hardware onde os dados são guardados.   Por fim, é importante explorar metodologias e ferramentas de diagnóstico e avaliação experimental para melhor compreender a interação entre aplicações e recursos de armazenamento, permitindo a sua otimização e depuração (i.e., correção de potenciais erros críticos).  | 
Programa  | 1. Infraestruturas e hardware para armazenamento de dados.   2. Arquiteturas e interfaces de software para armazenamento de dados (p.ex., block devices, sistemas de ficheiros, object stores).   3. Requisitos de desempenho no armazenamento e acesso a dados e respetivas otimizações (p.ex., caching, tiering).   4. Otimizações de custo, segurança e confiabilidade (replicação, erasure-coding, deduplicação, cifragem).   5. Monitorização, diagnóstico e avaliação de sistemas de armazenamento e aplicações sobre os mesmos. 
   | 
Bibliografia  |   Alexander Thomasian. Storage Systems, O’Reilly, 2021.     Rajkumar Buyya, Toni Cortes, Hai Jin. High Performance Mass Storage and Parallel I/O: Technologies and Applications, Wiley-IEEE Press, 2001.     Ricardo Macedo, João Paulo, José Pereira, Alysson Bessani. A Survey and Classification of Software-Defined Storage Systems, ACM Computing Surveys, 2020.     Operating Systems: Three Easy Pieces, Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau, Arpaci-Dusseau. Books, 2018.     Martin Kleppman. Designing Data-Intensive Applications: The big Ideas Behind Reliable, Scalable, and Maintainable Systems, O’Reilly, 2017. 
 
  | 
Resultados da aprendizagem  | - Explorar as interfaces, bibliotecas e abstrações de armazenamento usadas por aplicações focadas em dados (p.ex., sistemas de ficheiros, armazenamento em bloco, armazenamento chave-valor).   - Compreender os diferentes comportamentos de armazenamento e acesso a dados por parte destas mesmas aplicações (p.ex., cargas de trabalho aleatórias e sequenciais, distribuições de acesso).   - Compreender a organização e gestão de recursos de armazenamento em infraestruturas de grande escala.   - Adquirir conhecimentos sobre tecnologias, interfaces e arquiteturas de sistemas de armazenamento locais e distribuídos usados atualmente pela indústria, percebendo a sua evolução e diferentes propósitos.   - Desenhar otimizações para o acesso a informação digital por parte de aplicações centradas em dados (p.ex., de desempenho, confiabilidade, gestão de recursos, segurança). 
   | 
Método de avaliação  | A componente de avaliação terá uma componente teórica com um peso entre 40% e 60% e uma componente prática com trabalho em grupo com um peso entre 40% e 60%.  | 
Funcionamento  | Turno: T 1; Docente: João Tiago Medeiros Paulo; Dep.: DI; Horas: 15. Turno: PL 1; Docente: Ricardo Gonçalves Macedo; Dep.: DI; Horas: 30.  |