diff --git a/content/en/ch10.md b/content/en/ch10.md index 9704acc..424eff2 100644 --- a/content/en/ch10.md +++ b/content/en/ch10.md @@ -2,7 +2,9 @@ title: "10. Consistency and Consensus" weight: 210 breadcrumbs: false ---- +--- + +![](/map/ch09.png) > *An ancient adage warns, “Never go to sea with two chronometers; take one or three.”* > @@ -1717,4 +1719,4 @@ discussed in this chapter are helpful in that context. [^88]: Heidi Howard and Jon Crowcroft. [Coracle: Evaluating Consensus at the Internet Edge](https://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p85.pdf). At *Annual Conference of the ACM Special Interest Group on Data Communication* (SIGCOMM), August 2015. [doi:10.1145/2829988.2790010](https://doi.org/10.1145/2829988.2790010) [^89]: Tom Lianza and Chris Snook. [A Byzantine failure in the real world](https://blog.cloudflare.com/a-byzantine-failure-in-the-real-world/). *blog.cloudflare.com*, November 2020. Archived at [perma.cc/83EZ-ALCY](https://perma.cc/83EZ-ALCY) [^90]: Ivan Kelly. [BookKeeper Tutorial](https://github.com/ivankelly/bookkeeper-tutorial). *github.com*, October 2014. Archived at [perma.cc/37Y6-VZWU](https://perma.cc/37Y6-VZWU) -[^91]: Jack Vanlightly. [Apache BookKeeper Insights Part 1 — External Consensus and Dynamic Membership](https://medium.com/splunk-maas/apache-bookkeeper-insights-part-1-external-consensus-and-dynamic-membership-c259f388da21). *medium.com*, November 2021. Archived at [perma.cc/3MDB-8GFB](https://perma.cc/3MDB-8GFB) \ No newline at end of file +[^91]: Jack Vanlightly. [Apache BookKeeper Insights Part 1 — External Consensus and Dynamic Membership](https://medium.com/splunk-maas/apache-bookkeeper-insights-part-1-external-consensus-and-dynamic-membership-c259f388da21). *medium.com*, November 2021. Archived at [perma.cc/3MDB-8GFB](https://perma.cc/3MDB-8GFB) diff --git a/content/en/ch2.md b/content/en/ch2.md index 985d66e..f148e59 100644 --- a/content/en/ch2.md +++ b/content/en/ch2.md @@ -4,6 +4,8 @@ weight: 102 breadcrumbs: false --- +![](/map/ch01.png) + > *The Internet was done so well that most people think of it as a natural resource like the Pacific > Ocean, rather than something that was man-made. When was the last time a technology with a scale > like that was so error-free?* diff --git a/content/en/ch3.md b/content/en/ch3.md index 9b6dc8b..49b7a35 100644 --- a/content/en/ch3.md +++ b/content/en/ch3.md @@ -4,6 +4,8 @@ weight: 103 breadcrumbs: false --- +![](/map/ch02.png) + > *The limits of my language mean the limits of my world.* > > Ludwig Wittgenstein, *Tractatus Logico-Philosophicus* (1922) @@ -263,9 +265,9 @@ human-readable. In a relational data model, this is done using a *join*, for exa ```sql SELECT users.*, regions.region_name -FROM users -JOIN regions ON users.region_id = regions.id -WHERE users.id = 251; + FROM users + JOIN regions ON users.region_id = regions.id + WHERE users.id = 251; ``` Document databases can store both normalized and denormalized data, but they are often associated @@ -343,11 +345,11 @@ In other words, it is a precomputed result of (approximately) the following quer ```sql SELECT posts.id, posts.sender_id -FROM posts -JOIN follows ON posts.sender_id = follows.followee_id -WHERE follows.follower_id = current_user -ORDER BY posts.timestamp DESC -LIMIT 1000 + FROM posts + JOIN follows ON posts.sender_id = follows.followee_id + WHERE follows.follower_id = current_user + ORDER BY posts.timestamp DESC + LIMIT 1000 ``` This means that whenever the timeline is read, the service still needs to perform two joins: look up diff --git a/content/en/ch4.md b/content/en/ch4.md index df23df3..af8b274 100644 --- a/content/en/ch4.md +++ b/content/en/ch4.md @@ -4,6 +4,8 @@ weight: 104 breadcrumbs: false --- +![](/map/ch03.png) + > *One of the miseries of life is that everybody names things a little bit wrong. And so it makes > everything a little harder to understand in the world than it would be if it were named > differently. A computer does not primarily compute in the sense of doing arithmetic. […] They diff --git a/content/en/ch5.md b/content/en/ch5.md index 1414699..b934872 100644 --- a/content/en/ch5.md +++ b/content/en/ch5.md @@ -4,6 +4,7 @@ weight: 105 breadcrumbs: false --- +![](/map/ch04.png) > *Everything changes and nothing stands still.* > diff --git a/content/en/ch6.md b/content/en/ch6.md index 618d02a..45a03e1 100644 --- a/content/en/ch6.md +++ b/content/en/ch6.md @@ -4,6 +4,8 @@ weight: 206 breadcrumbs: false --- +![](/map/ch05.png) + > *The major difference between a thing that might go wrong and a thing that cannot possibly go wrong > is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible > to get at or repair.* diff --git a/content/en/ch7.md b/content/en/ch7.md index 18a08b4..2f5bb13 100644 --- a/content/en/ch7.md +++ b/content/en/ch7.md @@ -4,6 +4,8 @@ weight: 207 breadcrumbs: false --- +![](/map/ch06.png) + > *Clearly, we must break away from the sequential and not limit the computers. We must state > definitions and provide for priorities and descriptions of data. We must state relationships, not > procedures.* diff --git a/content/en/ch8.md b/content/en/ch8.md index 01cf84c..15fc740 100644 --- a/content/en/ch8.md +++ b/content/en/ch8.md @@ -4,6 +4,8 @@ weight: 208 breadcrumbs: false --- +![](/map/ch07.png) + > *Some authors have claimed that general two-phase commit is too expensive to support, because of the > performance or availability problems that it brings. We believe it is better to have application > programmers deal with performance problems due to overuse of transactions as bottlenecks arise, diff --git a/content/en/ch9.md b/content/en/ch9.md index 79a8378..96a4089 100644 --- a/content/en/ch9.md +++ b/content/en/ch9.md @@ -4,6 +4,8 @@ weight: 209 breadcrumbs: false --- +![](/map/ch08.png) + > *They’re funny things, Accidents. You never have them till you’re having them.* > > A.A. Milne, *The House at Pooh Corner* (1928)