Skip to content

Commit

Permalink
merge calibration and update zh-tw content
Browse files Browse the repository at this point in the history
  • Loading branch information
Vonng committed Aug 19, 2021
1 parent b9d3f4e commit 4e4193a
Show file tree
Hide file tree
Showing 19 changed files with 612 additions and 525 deletions.
17 changes: 10 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@

- 作者: [Martin Kleppmann](https://martin.kleppmann.com)
- 原名:[《Designing Data-Intensive Applications》](http://shop.oreilly.com/product/0636920032175.do)
- 译者:[冯若航]( https://vonng.com)[email protected]
- 使用 [Typora](https://www.typora.io)[Gitbook](https://vonng.gitbooks.io/ddia-cn/content/)[Github Pages](https://vonng.github.io/ddia)以获取最佳阅读体验。
- 繁体:[繁體中文版本](zh-tw/README.md)
- 本地:若无合适的Markdown编辑器,您可在项目根目录中执行`make`,并通过浏览器阅读( Powered by [Docsify](https://docsify.js.org/#/zh-cn/) )。
- 译者:[冯若航](https://vonng.com)[@Vonng](https://vonng.com/en/)
- 校订: [@yingang](https://github.com/yingang)
- 繁体:[繁體中文版本](zh-tw/README.md) by [@afunTW](https://github.com/afunTW)


> 使用 [Typora](https://www.typora.io)[Gitbook](https://vonng.gitbooks.io/ddia-cn/content/)[Github Pages](https://vonng.github.io/ddia)以获取最佳阅读体验。
>
> 本地:您可在项目根目录中执行`make`,并通过浏览器阅读([在线预览](http://ddia.vonng.com/#/))。
## 译序

> 不懂数据库的全栈工程师不是好架构师
Expand Down Expand Up @@ -133,23 +136,23 @@

本译文只供学习研究参考之用,不得公开传播发行或用于商业用途。有能力阅读英文书籍者请购买正版支持。


## 贡献

0. 全文校订 by [@yingang](https://github.com/yingang)
1. [序言初翻修正](https://github.com/Vonng/ddia/commit/afb5edab55c62ed23474149f229677e3b42dfc2c) by [@seagullbird](https://github.com/Vonng/ddia/commits?author=seagullbird)
2. [第一章语法标点校正](https://github.com/Vonng/ddia/commit/973b12cd8f8fcdf4852f1eb1649ddd9d187e3644) by [@nevertiree](https://github.com/Vonng/ddia/commits?author=nevertiree)
3. [第六章部分校正](https://github.com/Vonng/ddia/commit/d4eb0852c0ec1e93c8aacc496c80b915bb1e6d48)[第10章的初翻](https://github.com/Vonng/ddia/commit/9de8dbd1bfe6fbb03b3bf6c1a1aa2291aed2490e) by @[MuAlex](https://github.com/Vonng/ddia/commits?author=MuAlex)
4. [第一部分](part-i.md)前言,[ch2](ch2.md)校正 by [@jiajiadebug](https://github.com/Vonng/ddia/commits?author=jiajiadebug)
5. [词汇表](glossary.md)[后记]()关于野猪的部分 by @[Chowss](https://github.com/Vonng/ddia/commits?author=Chowss)
6. [繁體中文](https://github.com/Vonng/ddia/pulls)版本与转换脚本 by [@afunTW](https://github.com/afunTW)
7. [对各章进行大量翻译更正润色](https://github.com/Vonng/ddia/pull/118) by [@yingang](https://github.com/yingang)
8. 感谢所有作出贡献,提出意见的朋友们:
7. 感谢所有作出贡献,提出意见的朋友们:

<details>
<summary><a href="https://github.com/Vonng/ddia/pulls">Pull Requests</a> & <a href="https://github.com/Vonng/ddia/issues">Issues</a></summary>

| ISSUE & Pull Requests | USER | Title |
| ----------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| [123](https://github.com/Vonng/ddia/pull/123) | [@yingang](https://github.com/yingang) | translation updates (chapter 9, TOC in readme, glossary, etc.) |
| [121](https://github.com/Vonng/ddia/pull/121) | [@yingang](https://github.com/yingang) | translation updates (chapter 5 to chapter 8) |
| [120](https://github.com/Vonng/ddia/pull/120) | [@jiong-han](https://github.com/jiong-han) | Typo fix: 呲之以鼻 -> 嗤之以鼻 |
| [119](https://github.com/Vonng/ddia/pull/119) | [@cclauss](https://github.com/cclauss) | Streamline file operations in convert() |
Expand Down
6 changes: 0 additions & 6 deletions _coverpage.md

This file was deleted.

2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
name: '设计数据密集型应用',
repo: 'Vonng/ddia',
auto2top: true,
coverpage: true,
coverpage: false,
executeScript: true,
loadSidebar: true,
loadNavbar: true,
Expand Down
132 changes: 120 additions & 12 deletions zh-tw/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,41 +90,149 @@



* [第一章:可靠性、可伸縮性、可維護性](ch1.md)
* [第一章:可靠性、可伸縮性、可維護性](ch1.md)

* [關於資料系統的思考](ch1.md#關於資料系統的思考)

* [可靠性](ch1.md#可靠性)

* [可伸縮性](ch1.md#可伸縮性)

* [可維護性](ch1.md#可維護性)

* [本章小結](ch1.md#本章小結)

* [第二章:資料模型與查詢語言](ch2.md)

* [第三章:儲存與檢索](ch3.md)
* [關係模型與文件模型](ch2.md#關係模型與文件模型)

* [資料查詢語言](ch2.md#資料查詢語言)

* [圖資料模型](ch2.md#圖資料模型)

* [本章小結](ch2.md#本章小結)

* [第三章:儲存與檢索](ch3.md)

* [驅動資料庫的資料結構](ch3.md#驅動資料庫的資料結構)

* [事務處理還是分析?](ch3.md#事務處理還是分析?)

* [列儲存](ch3.md#列儲存)

* [本章小結](ch3.md#本章小結)

* [第四章:編碼與演化](ch4.md)

* [編碼資料的格式](ch4.md#編碼資料的格式)

* [資料流的型別](ch4.md#資料流的型別)

* [本章小結](ch4.md#本章小結)



### [第二部分:分散式資料](part-ii.md)



* [第五章:複製](ch5.md)
* [第五章:複製](ch5.md)

* [領導者與追隨者](ch5.md#領導者與追隨者)

* [複製延遲問題](ch5.md#複製延遲問題)

* [多主複製](ch5.md#多主複製)

* [無主複製](ch5.md#無主複製)

* [本章小結](ch5.md#本章小結)

* [第六章:分割槽](ch6.md)

* [分割槽與複製](ch6.md#分割槽與複製)

* [鍵值資料的分割槽](ch6.md#鍵值資料的分割槽)

* [分割槽與次級索引](ch6.md#分割槽與次級索引)

* [分割槽再平衡](ch6.md#分割槽再平衡)

* [請求路由](ch6.md#請求路由)

* [第六章:分割槽](ch6.md)
* [本章小結](ch6.md#本章小結)

* [第七章:事務](ch7.md)
* [第七章:事務](ch7.md)

* [第八章:分散式系統的麻煩](ch8.md)
* [事務的棘手概念](ch7.md#事務的棘手概念)

* [第九章:一致性與共識](ch9.md)
* [弱隔離級別](ch7.md#弱隔離級別)

* [可序列化](ch7.md#可序列化)

* [本章小結](ch7.md#本章小結)

* [第八章:分散式系統的麻煩](ch8.md)

* [故障與部分失效](ch8.md#故障與部分失效)

* [不可靠的網路](ch8.md#不可靠的網路)

* [不可靠的時鐘](ch8.md#不可靠的時鐘)

* [知識、真相與謊言](ch8.md#知識、真相與謊言)

* [本章小結](ch8.md#本章小結)

* [第九章:一致性與共識](ch9.md)

* [一致性保證](ch9.md#一致性保證)

* [線性一致性](ch9.md#線性一致性)

* [順序保證](ch9.md#順序保證)

* [分散式事務與共識](ch9.md#分散式事務與共識)

* [本章小結](ch9.md#本章小結)



### [第三部分:衍生資料](part-iii.md)



* [第十章:批處理](ch10.md)
* [第十章:批處理](ch10.md)

* [使用Unix工具的批處理](ch10.md#使用Unix工具的批處理)

* [MapReduce和分散式檔案系統](ch10.md#MapReduce和分散式檔案系統)

* [MapReduce之後](ch10.md#MapReduce之後)

* [本章小結](ch10.md#本章小結)

* [第十一章:流處理](ch11.md)

* [傳遞事件流](ch11.md#傳遞事件流)

* [流與資料庫](ch11.md#流與資料庫)

* [流處理](ch11.md#流處理)

* [本章小結](ch11.md#本章小結)

* [第十二章:資料系統的未來](ch12.md)

* [資料整合](ch12.md#資料整合)

* [分拆資料庫](ch12.md#分拆資料庫)

* [將事情做正確](ch12.md#將事情做正確)

* [第十一章:流處理](ch11.md)
* [做正確的事情](ch12.md#做正確的事情)

* [第十二章:資料系統的未來](ch12.md)
* [本章小結](ch12.md#本章小結)



Expand Down Expand Up @@ -178,7 +286,7 @@

6. [繁體中文](https://github.com/Vonng/ddia/pulls)版本與轉換指令碼 by [@afunTW](https://github.com/afunTW)

7. [對第各章進行大量翻譯更正潤色](https://github.com/Vonng/ddia/pull/118) by [@yingang](https://github.com/yingang)
7. [對各章進行大量翻譯更正潤色](https://github.com/Vonng/ddia/pull/118) by [@yingang](https://github.com/yingang)

8. 感謝所有作出貢獻,提出意見的朋友們:

Expand All @@ -200,7 +308,7 @@

| [119](https://github.com/Vonng/ddia/pull/119) | [@cclauss](https://github.com/cclauss) | Streamline file operations in convert() |

| [118](https://github.com/Vonng/ddia/pull/118) | [@yingang](https://github.com/yingang) | translation updates (chapter 2 and 3) |
| [118](https://github.com/Vonng/ddia/pull/118) | [@yingang](https://github.com/yingang) | translation updates (chapter 2 and 4) |

| [117](https://github.com/Vonng/ddia/pull/117) | [@feeeei](https://github.com/feeeei) | 統一每章的標題格式 |

Expand Down
26 changes: 13 additions & 13 deletions zh-tw/ch1.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@



![](../img/ch1.png)
![](img/ch1.png)



Expand Down Expand Up @@ -82,11 +82,11 @@



​ 例如,如果將快取(應用管理的快取層,Memcached或同類產品)和全文搜尋(全文搜尋伺服器,例如Elasticsearch或Solr)功能從主資料庫剝離出來,那麼使快取/索引與主資料庫保持同步通常是應用程式碼的責任。[圖1-1](../img/fig1-1.png) 給出了這種架構可能的樣子(細節將在後面的章節中詳細介紹)。
​ 例如,如果將快取(應用管理的快取層,Memcached或同類產品)和全文搜尋(全文搜尋伺服器,例如Elasticsearch或Solr)功能從主資料庫剝離出來,那麼使快取/索引與主資料庫保持同步通常是應用程式碼的責任。[圖1-1](img/fig1-1.png) 給出了這種架構可能的樣子(細節將在後面的章節中詳細介紹)。



![](../img/fig1-1.png)
![](img/fig1-1.png)



Expand Down Expand Up @@ -350,7 +350,7 @@



1. 釋出推文時,只需將新推文插入全域性推文集合即可。當一個使用者請求自己的主頁時間線時,首先查詢他關注的所有人,查詢這些被關注使用者釋出的推文並按時間順序合併。在如[圖1-2](../img/fig1-2.png)所示的關係型資料庫中,可以編寫這樣的查詢:
1. 釋出推文時,只需將新推文插入全域性推文集合即可。當一個使用者請求自己的主頁時間線時,首先查詢他關注的所有人,查詢這些被關注使用者釋出的推文並按時間順序合併。在如[圖1-2](img/fig1-2.png)所示的關係型資料庫中,可以編寫這樣的查詢:



Expand All @@ -368,19 +368,19 @@

```

![](../img/fig1-2.png)
![](img/fig1-2.png)



**1-2 推特主頁時間線的關係型模式簡單實現**



2. 為每個使用者的主頁時間線維護一個快取,就像每個使用者的推文收件箱([圖1-3](../img/fig1-3.png))。 當一個使用者釋出推文時,查詢所有關注該使用者的人,並將新的推文插入到每個主頁時間線快取中。 因此讀取主頁時間線的請求開銷很小,因為結果已經提前計算好了。
2. 為每個使用者的主頁時間線維護一個快取,就像每個使用者的推文收件箱([圖1-3](img/fig1-3.png))。 當一個使用者釋出推文時,查詢所有關注該使用者的人,並將新的推文插入到每個主頁時間線快取中。 因此讀取主頁時間線的請求開銷很小,因為結果已經提前計算好了。



![](../img/fig1-3.png)
![](img/fig1-3.png)



Expand Down Expand Up @@ -442,11 +442,11 @@



​ 在[圖1-4](../img/fig1-4.png)中,每個灰條代表一次對服務的請求,其高度表示請求花費了多長時間。大多數請求是相當快的,但偶爾會出現需要更長的時間的異常值。這也許是因為緩慢的請求實質上開銷更大,例如它們可能會處理更多的資料。但即使(你認為)所有請求都花費相同時間的情況下,隨機的附加延遲也會導致結果變化,例如:上下文切換到後臺程序,網路資料包丟失與TCP重傳,垃圾收集暫停,強制從磁碟讀取的頁面錯誤,伺服器機架中的震動【18】,還有很多其他原因。
​ 在[圖1-4](img/fig1-4.png)中,每個灰條代表一次對服務的請求,其高度表示請求花費了多長時間。大多數請求是相當快的,但偶爾會出現需要更長的時間的異常值。這也許是因為緩慢的請求實質上開銷更大,例如它們可能會處理更多的資料。但即使(你認為)所有請求都花費相同時間的情況下,隨機的附加延遲也會導致結果變化,例如:上下文切換到後臺程序,網路資料包丟失與TCP重傳,垃圾收集暫停,強制從磁碟讀取的頁面錯誤,伺服器機架中的震動【18】,還有很多其他原因。



![](../img/fig1-4.png)
![](img/fig1-4.png)



Expand All @@ -466,7 +466,7 @@



​ 為了弄清異常值有多糟糕,可以看看更高的百分位點,例如第959999.9百分位點(縮寫為p95,p99和p999)。它們意味著95%,99%或99.9%的請求響應時間要比該閾值快,例如:如果第95百分位點響應時間是1.5秒,則意味著100個請求中的95個響應時間快於1.5秒,而100個請求中的5個響應時間超過1.5秒。如[圖1-4](../img/fig1-4.png)所示。
​ 為了弄清異常值有多糟糕,可以看看更高的百分位點,例如第959999.9百分位點(縮寫為p95,p99和p999)。它們意味著95%,99%或99.9%的請求響應時間要比該閾值快,例如:如果第95百分位點響應時間是1.5秒,則意味著100個請求中的95個響應時間快於1.5秒,而100個請求中的5個響應時間超過1.5秒。如[圖1-4](img/fig1-4.png)所示。



Expand Down Expand Up @@ -494,7 +494,7 @@

>

> ​ 在多重呼叫的後端服務裡,高百分位數變得特別重要。即使並行呼叫,終端使用者請求仍然需要等待最慢的並行呼叫完成。如[圖1-5](../img/fig1-5.png)所示,只需要一個緩慢的呼叫就可以使整個終端使用者請求變慢。即使只有一小部分後端呼叫速度較慢,如果終端使用者請求需要多個後端呼叫,則獲得較慢呼叫的機會也會增加,因此較高比例的終端使用者請求速度會變慢(效果稱為尾部延遲放大【24】)。
> ​ 在多重呼叫的後端服務裡,高百分位數變得特別重要。即使並行呼叫,終端使用者請求仍然需要等待最慢的並行呼叫完成。如[圖1-5](img/fig1-5.png)所示,只需要一個緩慢的呼叫就可以使整個終端使用者請求變慢。即使只有一小部分後端呼叫速度較慢,如果終端使用者請求需要多個後端呼叫,則獲得較慢呼叫的機會也會增加,因此較高比例的終端使用者請求速度會變慢(效果稱為尾部延遲放大【24】)。

>

Expand All @@ -506,7 +506,7 @@



![](../img/fig1-5.png)
![](img/fig1-5.png)



Expand Down Expand Up @@ -754,7 +754,7 @@



​ 在本書後面的[第三部分](part-iii.md)中,我們將看到一種模式:幾個元件協同工作以構成一個完整的系統(如[圖1-1](../img/fig1-1.png)中的例子)
​ 在本書後面的[第三部分](part-iii.md)中,我們將看到一種模式:幾個元件協同工作以構成一個完整的系統(如[圖1-1](img/fig1-1.png)中的例子)



Expand Down
Loading

0 comments on commit 4e4193a

Please sign in to comment.