Errata
Despite thorough reviews and our best effort to make the book flawless, errors can slip through from time to time. This page contents errata, grouped by chapter to facilitate navigation.
You can submit new errata through O’Reilly portal.
Acknowledgements, p.xix, penultimate paragraph: “reviewd” should be “reviewed”. “Denis Rytsov” should be “Denis Rystsov”. “Edward Ribiero” should be “Edward Ribeiro”.
Preface
Chapter 1
DBMS Architecture, p. 10. Not a typo per se, just a poorly worded sentence: “The execution plan is handled by the execution engine, which collects the results of the execution of local and remote operations”, should be: “Plan is carried out by the execution engine, which aggregates the results of local and remote operations”.
Index Files, p. 19. Text before the Figure 1-5 should be:
a) An index-organized table, where data records are stored directly in the index file.
b) An index file storing the offsets and a separate file storing data records.
Column-Oriented Data Layout, p. 10. “Values belonging to the same row are stored closely together” should read as “Values belonging to the same column are stored closely together:”
Primary Index as an Indirection, p. 21, Figure 1-6. Assuming primary and secondary index nodes in example b) are 0-indexed, entry 1 of secondary index should point to entry 3 of primary index, and entry 2 of secondary index should point to entry 0 of primary index. In other words, entries 1 and 2 in a secondary index were interchanged.
On p. 35, “B-Trees are characterized by their fanout: the number of keys stored in each node”, shoud read “B-Trees are characterized by their fanout: the maximum number of children each nonleaf node can have”.
Figure 2-12 on p. 40 should not contain 13 in the right node after split.
B-Tree Lookup Complexity, p. 37. All variables named “K” should be “N”. A whole paragraph should read as follows:
In terms of number of transfers, the logarithm base is N (number of keys per node). There are N times more nodes on each new level, and following a child pointer reduces the search space by the factor of N. During lookup, at most logN M (where M is a total number of items in the B-Tree) pages are addressed to find a searched key. The number of child pointers that have to be followed on the root-to-leaf pass is also equal to the number of levels, in other words, the height h of the tree.
B-Tree Node Splits, p. 39. Sentence on elements that should be transferred during split contains a typo, and should read as (correction is highlighted): “All elements after the split point (including split point in the case of leaf node split) are transferred to the newly created sibling node.”
Chapter 2
Chapter 5
Steal and force policies, p. 91, “Undo rolls back updates to forced pages for committed transactions” should be “Undo rolls back updates to forced pages for uncommitted transactions”.
Read and Write Anomalies, p. 96, third paragraph. “commts” should be “commits”.
Pessimistic Concurrency Control, p.99, last paragraph. “earlier” should be “later”. Timestamp ordering allows transactions to be committed in their timestamp order, so any transaction that attempts to get committed out of order is aborted.
In section “Page Repacement”, in reference to paper on Bélády’s anomaly, namely [BEDALY69], while this does not have any influence on correctness of content, it would’ve been nice to have reference spell author’s name as [BELADY69].
Fractional Cascading, p.118, Figure 6-5. Third element of the first array should be “25” not “26”, and arrow from it should point to “25” in the second array, not to “16”. Correct image is presented below.