This page provides resources related to our book “Consensus in Data Management: from Distributed Commit to Blockchain“.

Summary: The book provides an introduction to the topic of consensus (also called agreement), which is one of the most fundamental topics in distributed computing. This includes a focus on the paxos protocol and some of its variants. Then, the book discusses the impact of the problem of consensus in data management. This includes areas such as distributed and replicated databases, and how consensus can be utilized to solve the distributed atomic commit and state-machine replication problems. Then, the book overviews the problem of consensus in a byzantine environment where nodes can be malicious and/or act in arbitrary ways. And then show how fundamental work on this byzantine agreement problem influences recent advances in blockchain systems.

Book Overview

The book consists of the following chapters:

Chapter 1 (Introduction): This chapter introduces the book and motivates the topic of consensus in data management.

Chapter 2 (Principles of Consensus): This chapter introduces the problem of consensus formally. Then, it presents the Paxos protocol in detail and shows how it solves consensus. Finally, the chapter provides an intuition of how consensus is utilized in distributed computing problems.

Chapter 3 (Background): This chapter presents background for the rest of the book about data management. It presents a model of data management systems and introduces the concepts of transaction processing, concurrency control, and recovery.

Chapter 4 (Consensus for Distributed Commit): This chapter provides an overview of distributed databases and presents the problem of atomic commitment. Then, it delves into the topic of how consensus can be used for distributed atomic commit, and explores the relationship between atomic commitment and consensus.

Chapter 5 (Consensus for Data Replication): This chapter provides an overview of replicated databases and presents the problem of consistent replication. Then, it shows how consensus can be utilized to build replicated databases and provides examples of systems that utilize these concepts.

Chapter 6 (Consensus for Blockchain): This chapter provides an introduction of consensus in byzantine environments where nodes can act in malicious or arbitrary ways. It overviews various fundamental solutions in this space and then show how they are utilized in recent blockchain systems.

Chapter 7 (Conclusion): In the conclusion chapter, we also provide future directions and our expectations on how consensus can be relevant in emerging data management problems.

Presentation slides

We are currently working on designing presentation slides to accompany the book. Please reach out if you have any questions.

Presentation videos

We are currently recording videos that cover the material in the book. Please reach out if you have questions.