Tutorial: Deep Dive into Apache Cassandra: Theory, Design, and Application
Lewis Tseng, Haochen Pan, Yingjian Wu · 2020
Distributed storage systems are fundamental to many Internet-scale applications. To achieve high performance, modern storage systems often choose to provide only weaker guarantees (e.g., weak consistency and eventual correctness). Moreover, to deal with semi-or unstructured and unpredictable data, these systems mainly support a flexible data scheme and simple interface. As a result, it requires a new way of thinking about storage and data modeling. This tutorial consists of a series of hands-on and interactive exercises for beginners that have minimum or even no experience in distributed storage systems. We will first give an overview of distributed storages and new storage paradigms like NoSQL/NewSQL. Then we discuss their key properties (e.g., consistency, availability, fault-tolerance, etc.) and an important trade-off (i.e., CAP theorem). Finally, we will walk through exercises of installing and configuring Cassandra. If time permits, we will build a simple application on top of Cassandra.