Errata

ZooKeeper

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date Submitted
NA
Chapter 9, subsection "Zab: Broadcasting State Updates"

I'm reading this book on Safari Online and it seems to be the 2nd revision that is currently available there.

Below is the text from the section "Zab: Broadcasting State Updates" that outlines the 2 properties of the ZAB protocol:

Zab guarantees a couple of important properties:
• If a server commits T before Tʹ , then any server that commits T and Tʹ  must also commit T before Tʹ .
• If a server commits T and Tʹ  and commits T first, then any server that commits Tʹ  must commit T first.

The language used here is confusing to me as a reader. Specifically, it is unclear what is the difference between property 1 and property 2. They both seem to be stating the exact same thing, with the only difference being the wording of the sentences.

I did a bit of research and found that the text in the first edition is drastically different:

Here is the text from the first edition:

• If the leader broadcasts T and Tʹ in that order, each server must commit T before
committing Tʹ .
• If any server commits transactions T and Tʹ in that order, all other servers must
also commit T before Tʹ .

In my opinion, I find the text of the first edition to clearer than the one in the second revision. This is especially true given the explanation of the first property that follows -

> The first property guarantees that transactions are delivered in the same order across servers, ...

The 2nd revision's text doesn't make it obvious how the property of commit order implies ordering on delivery of transactions.

Anonymous  Oct 16, 2020 
Printed Page 169
5th paragraph

The first sentence is:
Let’s talk now about followers (class FollowerRequestProcessor ).

The class name in parentheses could be FollowerZooKeeperServer.

xdocker  Nov 10, 2017 
Printed Page xi
5th paragraph (image)

The preface has an icon of a possum (or similar mammal) with the description "This icon signifies a tip, suggestion, or a general note.", however, throughout the book a different image is used - one of a bird.

Anonymous  Jul 25, 2017 
PDF Page 60
2nd and 3rd paragraph

In the second paragraph:
"It may seem a bit strange that we pass data in both the second and fourth parameters of create, but the data passed in the second parameter is the data to be written to the new znode and the data passed in the fourth will be made available to the createParentCallback".

The "fourth" should read the "sixth".

The third paragraph:
"we want to simply retry the create, which we can do by calling createPath. However, to call createPath... We have that data in the ctx object that was passed
to the callback because we passed the creation data as the fourth parameter of the create."

Here, "createPath" should be "createParent", and again "fourth" should be "sixth".

stephen wang  Apr 21, 2017