DSS
Data Storage Systems
Objectives
- Explore storage interfaces, libraries and abstractions used by data-centric applications (e.g., file systems, object stores, key-value stores).
- Understand the different storage and data access patterns of these applications (e.g., random and sequential workloads, access distributions).
- Understand the organization and management of storage resources in large-scale infrastructures.
- Acquire knowledge about technologies, interfaces and architectures of local and distributed storage systems currently used in the state-of-practice (e.g., industry, production environments), while understanding their evolution and different purposes.
- Design optimizations for accessing digital information on behalf of data-centric applications (e.g., for performance, reliability, resource management, security).
Program
- Data-centric applications and respective storage requirements.
- Interfaces, file formats and different I/O libraries (e.g., POSIX, block, key-value pairs).
- Infrastructures and storage architectures.
- Systems and hardware for local and distributed data storage.
- Storage optimizations in terms of efficiency, scalability, reliability, resource management and data security (e.g., caching, tiering, compression, deduplication, replication, encryption).
- Diagnosis of application I/O requests and evaluation of storage systems, in user-space and kernel-space.
Bibliography
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.