Data structures are the means by which software programs store and retrieve data. This monograph focuses on key-value data structures, which are widely used for data-intensive applications thanks to the versatility of the key-value data model. Key-value data structures constitute the core of any data-driven system. They provide the means to store, search, and modify data residing at various levels of the storage and memory hierarchy. Designing efficient data structures for given workloads has long been a focus of research and practice in both academia and industry. Data Structures for Data-Intensive Applications explains the space of data structure design choices, how to select the appropriate data structure depending on the goals and workload of an application at hand, and how the ever-evolving hardware and data properties require innovations in data structure design. The overarching goal is to help the reader both select the best existing data structures and design and build new ones.
Not really a book, more of a long white paper: very dense and dry with enormous amount of references. As a white paper it is very approachable, but in order to appreciate it fully you'll need to follow the references as the "book" doesn't spent any time summarizing them. What I liked: - PyRUMID (Point queries, Range queries, Updates, Memory, Inserts, and Deletes) model to describe workload. It's a useful improvement over more popular RUM. (chapter 2) - solid overview of design space dimensions and forces affecting design. This is the core of the paper. (chapter 2)
The chapter on mapping workloads to data structures (chapter 3) worth skimming, but don't expect to see some revelation. This is pretty much old story of B+ trees vs LSM and how different modifications can compensate for workload patterns that are antagonistic to the original design of above mentioned data structures.
Everything else felt a bit like a filler to me. But it is relatively short. Solid 3 stars