Introduction to Reliable and Secure Distributed Programming
Reviews
This page collects reviews of the book, which the authors were able to
track. If you are aware of a review not shown here please let us
know. We will also be happy to post your review.
Reviews of the second edition
28 May 2013 on nosql.mypopescu.com
Reviewer: Alex Popescu (US)
For textbooks, "Introduction to Reliable and Secure Distributed
Programming" is a superb introduction to distributed computing from a
formal perspective; it's really not about "programming" or
"engineering" but about distributed system fundamentals like
consensus, distributed registers, and broadcast. Used in Berkeley's
Distributed Computing course.
2 July 2013 on amazon.com
Reviewer: Charles E. Wegrzyn
One of the best...
If you are "into" distributed computing this is a musthave
book. The book gives descriptions of common distributed problems and
offers a number of different possible solutions, including pseudocode
for their implementations.
This has to be one of the top 10 on any programmers book list.
Reviews of the first edition
1 October 2006 on Amazon.uk
Reviewer: Vivien Quema (France)
This book is an excellent introduction to distributed
algorithms. It provides a very good basis for teaching this topic to
BS and MS students. It is easy to read and uses a very intuitive
formalism for the description of algorithms. Besides, Java code is
available for practicing described algorithms.
I highly recommend it!
15 September 2006 on Amazon.uk
Reviewer: Felix Freiling (Germany)
The theory of distributed algorithms that can tolerate node
failures has evolved over more than 30 years in many diverse and
distinct facets. This book takes a new approach at presenting the
area. It presents many different algorithms in an incremental
stepbystep fashion within a uniform system model (asynchronous
systems with failure detectors). I have used the book in a thirdyear
diploma course on faulttolerant distributed algorithms and it worked
well. I focussed on the crashstop model and went through all
abstractions from lowlevel fairlossy channels right up to
terminating reliable broadcast. With some additional material
explaining important proofs (like the infamous "FLP" and
"CHT" results) this already took me an entire semester with
4 lecture hours per week even without looking into the programming
exercises. The strength of the book is its concise and clear
presentation and explanation of the algorithms and the corresponding
abstractions. The bottom line of it for me is that the right
abstractions are the key to master the complexity in distributed
systems. This is exemplified by the collection of elegant and simple
algorithms for difficult problems once consensus has been
solved. Overall, Guerraoui and Rodrigues have managed to compress many
major lines of established research into a very instructive volume
which I will continue to use in my classes.
11 September 2006 on ACM Computing Reviews
Some of the key algorithms for reliable broadcast, synchronized
access to data, and achieving consensus are covered in this textbook,
on abstractions and algorithms for building distributed systems. The
book begins... (review available
online for Computing Reviews subscribers).
7 August 2006 on Amazon.uk
Reviewer: Seif Haridi (Sweden)
To understand distributed systems you should first understand the
underlying principles and limitations. And the best way to do this is
by studying distributed algorithms with various assumptions about the
failure behavior of the network and processing nodes. This is exactly
what this book is about. And is done in a modern and mature way. For
example the book uses models of failure detectors as underlying
mechanism to classifiy systems instead of the old way of classifying
systems as synchronous vs. asynchronous. The use of different levels
of abstractions in this book is significant. It make it much easier to
describe complex algorithms is simple terms. While there are topics
that are not covered in this book, like for example selfstabilising
algorithms, and more detailed account of distributed transactions,
this book is the best start in the area of distributed computing.
20 June 2006 on Amazon.com
Reviewer: W Boudville (US)
The book is about abstractions and algorithms for distributed
programming. Arguably, the abstractions are considered to be at least
as important as the algorithms. The abstractions effectively are
assumptions that let you push down certain details into lower level
code. A very modular approach that allows for a solid object oriented
design.
Notably, you should not have to worry about the semantics of pushing
bytes from one machine to another. Network programming is now so well
established that you won't have to write code to move a byte set. So
there is a stable, debugged network protocol stack. (Not necessarily
TCP/IP, to be sure.)
The algorithms in the book can then focus on such matters as how to
distribute data and collect results across a network of machines. Very
importantly, to also detect when a machine might have timed out or
otherwise generated a failure.
19 April 2006 on Amazon.uk
Reviewer: A CS professor from EU (anonymous)
I've used this book for my students in an introductory course in
Distributed Systems this year. I've tried with other books in the past
but I ended up with the necessity of providing my students with
simpler material because existing textbooks in distributed systems are
pretty difficult to understand for beginners without any grasp on the
field. I've noticed with some relief that students this year were
pretty happy about this book, they find the book clear and useful. I
believe that this book provides students with simple techniques on how
to design a distributed algorithm and gives an immediate understanding
of fundamental concepts and principles of distributed computing.
2 April 2006 on Amazon.uk
Reviewer: A reader (anonymous)
In contrary to the review titled "Collection of Trivialities
and nonsense" (which by the way appears to be a pretty unserious
review), my impression of this book is really good and for me stands
out as one of the best books covering the basic principles of
(reliable) distributed computing!
As a Ph.d. student in
computer science, I have read numerous scientific articles covering
various sporadic topics of distributed computing. With this book, I
have finally found a concise collection covering the fundamental
principles of distributed computing from which one can comprehend the
nature of this highly interesting and complex reseach field.
In an understandable and interesting language, the book first
covers the basic abstractions and assumptions used throughout the book
(and in the literature in general), and then goes on to using these
when presenting the basic mechanisms in this field, such as relieable
broadcast, shared memory, consensus etc.
In addition, the book is very well written (with a sense of humour) and uses numerous
illustrative exemplifications to demonstrate concepts or important
points. At the end of each chapter, the book includes both historical
notes that are both interesting and informative on the evolution of
this specific topic, and prsents a number of challenging exercises to
further develop one's skills in this exciting research area.
To summerize, the book is really worth reading for people having
interest in or wanting to learn about the art of distributed computing
(regardless of bachelor, master or Ph.d. level) and thus I highly
recommend it!
1 April 2006 on Amazon.uk
Reviewer: Maarten van Steen
Stating that this is a book full of
trivialities and nonsense as one reviewer did so far, can only reflect
a miscomprehension of what distributed systems are all about. There
are many aspects that need to be dealt with when learning about
distributed systems. Algorithms is one of them, and this book does a
great job in explaining how and where they fit in. There are only a
few truly good books on distributed algorithms, but coming from the
systems world, my main objection to most of them is that they pay poor
attention to mapping abstract descriptions to real programs.
Guerraoui and Rodrigues manage to find the right balance between
theory and practice. Every time they describe one of those fundamental
algorithms, a student should be able to easily see how the algorithm
can be implemented in a real distributed system. Moreover, by
following an approach by which algorithms are stacked one on top the
other, it should be evident how even complex algorithms map to the
real world. Both authors are known in the scientific community for
their excellent theoretical work, but have also gained a reputation of
being able to put their money where their mouth is: they implement
distributed systems. This book reflects this rare ability of being
able to capture theory and practice.
The authors focus on
reliable distributed programming, and discuss the topics one would
expect: consensus, broadcast, ordered delivery, failure models, and so
on. My only objection is that I wished they hadn't called it
programming. To my opinion, it's more than that: it's all about
distributed algorithms.
In conclusion: any person who is
seriously interested in distributed systems or algorithms should check
out this book. You will not be disappointed.
22 Mar 2006 on Amazon.uk
Reviewer: A reader (anonymous)
This book has some potential for becoming the worse book ever written on
distributed systems. It is pretentious and contains quite a few
mistakes. The author tries to mix theory and practice, but does not
show particular grasp on any of those. I would encourage whoever is
looking for a *real* book on distributed systems to refer to existing
texts as they provide a much better and sounder reference.
