Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Patterns of distributed systems
Joshi U., Pearson, Hoboken, NJ, 2023. 464 pp. Type: Book (9780138221980)
Date Reviewed: Nov 20 2024

This fairly comprehensive handbook looks at the typical replication and communication patterns found in a network. It can be used as a textbook in distributed systems courses, too.

Part 1 consists of two chapters. Chapter 1 outlines the problem area and typical issues to be solved in distributed systems to keep consistency among the nodes, or at least to approximate this requirement for databases in a broad sense. The chapter discusses the promises of distributed systems as a good idea, although it highlights the immanent properties of distributed systems that should be handled to keep up with the promises. Chapter 2 serves as a succinct summary of the book, providing an overview of all relevant patterns discussed within. The core problem is how to maintain consistency--or at least quasi consistency--through possibly thousands of nodes in a cluster.

Part 2 discusses the patterns of replication mechanisms, the various logging solutions, and the tradeoff between consistency and service availability. Data replication is important for ensuring service continuity, with design choices needing to be made based on whether consistency or availability is prioritized. The technique of state machine replication (SMR) allows for fault tolerance and strong consistency by replicating storage services on multiple servers. Replicating write-ahead logs is a key implementation technique for SMR. Alternatively, a majority quorum mechanism can be used for relaxed consistency.

Part 3 looks at data partitioning solutions. While partitioning data across servers is essential for scaling distributed systems, it poses challenges such as ensuring clients can quickly access the right server and minimizing data movement when adding or removing servers. Additionally, adding data to multiple partitions on different servers raises questions about atomicity. Common patterns for partitioning data are explored in the subsequent chapters of Part 3, with an emphasis on replicating each partition for fault tolerance using the various data replication patterns.

Part 4 is on time dimension in a distributed environment. Server data needs to be ordered based on time, but system clocks are not synchronized across servers, leading to unreliable timestamps. Quartz crystals manage computer clocks, but they can be inaccurate. The network time protocol (NTP) synchronizes clocks, but network delays can cause issues. Google’s TrueTime clock has a bounded skew, allowing for clock-based ordering. When the skew is unbounded, logical timestamps are used in distributed systems. This part showcases the various system clock synchronization methods that are significant to achieve and maintain consistency.

Part 5 focuses on system administration and cluster management. In a distributed system with multiple servers, it is important to have a system in place for controlling server membership, identifying failures, and determining how data should be distributed. Additionally, this information needs to be stored in a resilient way that is easily accessible to clients. Throughout the upcoming chapters, the author examines strategies that deal with these issues, offering efficient solutions for overseeing server clusters and guaranteeing dependable access to metadata.

Part 6 analyzes solutions for network efficiency. Efficient network utilization is essential for communication within a cluster of nodes. Connections must be effectively managed in order to avoid unnecessary connections and optimize network bandwidth usage to reduce latency and improve throughput. The chapters in this part look at various patterns that are used to maximize network utilization and facilitate communication among cluster nodes.

The book provides program code and system sequence diagrams for understanding and illustrating the underlying mechanisms of the individual methods. Network designers and software engineers can select among the available solutions to implement cluster solutions or cloud computing solutions. It is a very useful information source on architecture design in distributed systems.

More reviews about this item: Amazon, Goodreads

Reviewer:  Bálint Molnár Review #: CR147845
Bookmark and Share
  Featured Reviewer  
 
Distributed Systems (C.2.4 )
 
Would you recommend this review?
yes
no
Other reviews under "Distributed Systems": Date
The evolution of a distributed processing network
Franz L., Sen A., Rakes T. Information and Management 7(5): 263-272, 1984. Type: Article
Jul 1 1985
A geographically distributed multi-microprocessor system
Angioletti W., D’Hondt T., Tiberghien J.  Concurrent languages in distributed systems: hardware supported implementation (, Bristol, UK,871985. Type: Proceedings
Oct 1 1985
A fault tolerant LAN with integrated storage, as part of a distributed computing system
Boogaard H., Bruins T., Vree W., Reijns G.  Concurrent languages in distributed systems: hardware supported implementation (, Bristol, UK,1001985. Type: Proceedings
Aug 1 1985
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy