# 目錄

> DDIA 第一版完整目錄：十二章，涵蓋資料系統基礎、分散式資料與派生資料。

---

LLMS 索引： [llms.txt](/v1_tw/llms.txt)

---

![](/title-v1.jpg)

這份目錄與左側章節樹、頁末順序導航共享同一閱讀順序；章內標題直接來自各頁的穩定錨點。選擇任意條目即可進入對應章節或小節。

- [目錄](/v1_tw/toc/)
  - [插圖目錄](/v1_tw/toc/#list-of-figures)
- [序言](/v1_tw/preface/)
  - [本書的目標讀者](/v1_tw/preface/#本書的目標讀者)
  - [本書涉及的領域](/v1_tw/preface/#本書涉及的領域)
  - [本書綱要](/v1_tw/preface/#本書綱要)
  - [參考文獻與延伸閱讀](/v1_tw/preface/#參考文獻與延伸閱讀)
  - [O‘Reilly Safari](/v1_tw/preface/#oreilly-safari)
  - [致謝](/v1_tw/preface/#致謝)
- [I 資料系統基礎](/v1_tw/part-i/)
  - [索引](/v1_tw/part-i/#索引)
- [1 可靠性、可伸縮性和可維護性](/v1_tw/ch1/)
  - [關於資料系統的思考](/v1_tw/ch1/#關於資料系統的思考)
  - [可靠性](/v1_tw/ch1/#可靠性)
    - [硬體故障](/v1_tw/ch1/#硬體故障)
    - [軟體錯誤](/v1_tw/ch1/#軟體錯誤)
    - [人為錯誤](/v1_tw/ch1/#人為錯誤)
    - [可靠性有多重要？](/v1_tw/ch1/#可靠性有多重要)
  - [可伸縮性](/v1_tw/ch1/#可伸縮性)
    - [描述負載](/v1_tw/ch1/#描述負載)
    - [描述效能](/v1_tw/ch1/#描述效能)
      - [延遲和響應時間](/v1_tw/ch1/#延遲和響應時間)
      - [實踐中的百分位點](/v1_tw/ch1/#實踐中的百分位點)
    - [應對負載的方法](/v1_tw/ch1/#應對負載的方法)
  - [可維護性](/v1_tw/ch1/#可維護性)
    - [可操作性：人生苦短，關愛運維](/v1_tw/ch1/#可操作性人生苦短關愛運維)
    - [簡單性：管理複雜度](/v1_tw/ch1/#簡單性管理複雜度)
    - [可演化性：擁抱變化](/v1_tw/ch1/#可演化性擁抱變化)
  - [本章小結](/v1_tw/ch1/#本章小結)
  - [參考文獻](/v1_tw/ch1/#參考文獻)
- [2 資料模型與查詢語言](/v1_tw/ch2/)
  - [關係模型與文件模型](/v1_tw/ch2/#關係模型與文件模型)
    - [NoSQL 的誕生](/v1_tw/ch2/#nosql-的誕生)
    - [物件關係不匹配](/v1_tw/ch2/#物件關係不匹配)
    - [多對一和多對多的關係](/v1_tw/ch2/#多對一和多對多的關係)
    - [文件資料庫是否在重蹈覆轍？](/v1_tw/ch2/#文件資料庫是否在重蹈覆轍)
      - [網狀模型](/v1_tw/ch2/#網狀模型)
      - [關係模型](/v1_tw/ch2/#關係模型)
      - [與文件資料庫相比](/v1_tw/ch2/#與文件資料庫相比)
    - [關係型資料庫與文件資料庫在今日的對比](/v1_tw/ch2/#關係型資料庫與文件資料庫在今日的對比)
      - [哪種資料模型更有助於簡化應用程式碼？](/v1_tw/ch2/#哪種資料模型更有助於簡化應用程式碼)
      - [文件模型中的模式靈活性](/v1_tw/ch2/#文件模型中的模式靈活性)
      - [查詢的資料區域性](/v1_tw/ch2/#查詢的資料區域性)
      - [文件和關聯式資料庫的融合](/v1_tw/ch2/#文件和關聯式資料庫的融合)
  - [資料查詢語言](/v1_tw/ch2/#資料查詢語言)
    - [Web 上的宣告式查詢](/v1_tw/ch2/#web-上的宣告式查詢)
    - [MapReduce查詢](/v1_tw/ch2/#mapreduce查詢)
  - [圖資料模型](/v1_tw/ch2/#圖資料模型)
    - [屬性圖](/v1_tw/ch2/#屬性圖)
    - [Cypher 查詢語言](/v1_tw/ch2/#cypher-查詢語言)
    - [SQL 中的圖查詢](/v1_tw/ch2/#sql-中的圖查詢)
    - [三元組儲存和 SPARQL](/v1_tw/ch2/#三元組儲存和-sparql)
      - [語義網](/v1_tw/ch2/#語義網)
      - [RDF 資料模型](/v1_tw/ch2/#rdf-資料模型)
    - [SPARQL 查詢語言](/v1_tw/ch2/#sparql-查詢語言)
      - [圖形資料庫與網狀模型相比較](/v1_tw/ch2/#圖形資料庫與網狀模型相比較)
    - [基礎：Datalog](/v1_tw/ch2/#基礎datalog)
  - [本章小結](/v1_tw/ch2/#本章小結)
  - [參考文獻](/v1_tw/ch2/#參考文獻)
- [3 儲存與檢索](/v1_tw/ch3/)
  - [驅動資料庫的資料結構](/v1_tw/ch3/#驅動資料庫的資料結構)
    - [雜湊索引](/v1_tw/ch3/#雜湊索引)
    - [SSTables和LSM樹](/v1_tw/ch3/#sstables和lsm樹)
      - [構建和維護SSTables](/v1_tw/ch3/#構建和維護sstables)
      - [用SSTables製作LSM樹](/v1_tw/ch3/#用sstables製作lsm樹)
      - [效能最佳化](/v1_tw/ch3/#效能最佳化)
    - [B樹](/v1_tw/ch3/#b樹)
      - [讓B樹更可靠](/v1_tw/ch3/#讓b樹更可靠)
      - [B樹的最佳化](/v1_tw/ch3/#b樹的最佳化)
    - [比較B樹和LSM樹](/v1_tw/ch3/#比較b樹和lsm樹)
      - [LSM樹的優點](/v1_tw/ch3/#lsm樹的優點)
      - [LSM樹的缺點](/v1_tw/ch3/#lsm樹的缺點)
    - [其他索引結構](/v1_tw/ch3/#其他索引結構)
      - [將值儲存在索引中](/v1_tw/ch3/#將值儲存在索引中)
      - [多列索引](/v1_tw/ch3/#多列索引)
      - [全文搜尋和模糊索引](/v1_tw/ch3/#全文搜尋和模糊索引)
      - [在記憶體中儲存一切](/v1_tw/ch3/#在記憶體中儲存一切)
  - [事務處理還是分析？](/v1_tw/ch3/#事務處理還是分析)
    - [資料倉儲](/v1_tw/ch3/#資料倉儲)
      - [OLTP資料庫和資料倉儲之間的分歧](/v1_tw/ch3/#oltp資料庫和資料倉儲之間的分歧)
    - [星型和雪花型：分析的模式](/v1_tw/ch3/#星型和雪花型分析的模式)
  - [列式儲存](/v1_tw/ch3/#列式儲存)
    - [列壓縮](/v1_tw/ch3/#列壓縮)
      - [列式儲存和列族](/v1_tw/ch3/#列式儲存和列族)
      - [記憶體頻寬和向量化處理](/v1_tw/ch3/#記憶體頻寬和向量化處理)
    - [列式儲存中的排序順序](/v1_tw/ch3/#列式儲存中的排序順序)
      - [幾個不同的排序順序](/v1_tw/ch3/#幾個不同的排序順序)
    - [寫入列式儲存](/v1_tw/ch3/#寫入列式儲存)
    - [聚合：資料立方體和物化檢視](/v1_tw/ch3/#聚合資料立方體和物化檢視)
  - [本章小結](/v1_tw/ch3/#本章小結)
  - [參考文獻](/v1_tw/ch3/#參考文獻)
- [4 編碼與演化](/v1_tw/ch4/)
  - [編碼資料的格式](/v1_tw/ch4/#編碼資料的格式)
    - [語言特定的格式](/v1_tw/ch4/#語言特定的格式)
    - [JSON、XML和二進位制變體](/v1_tw/ch4/#jsonxml和二進位制變體)
      - [二進位制編碼](/v1_tw/ch4/#二進位制編碼)
    - [Thrift與Protocol Buffers](/v1_tw/ch4/#thrift與protocol-buffers)
      - [欄位標籤和模式演變](/v1_tw/ch4/#欄位標籤和模式演變)
      - [資料型別和模式演變](/v1_tw/ch4/#資料型別和模式演變)
    - [Avro](/v1_tw/ch4/#avro)
      - [Writer模式與Reader模式](/v1_tw/ch4/#writer模式與reader模式)
      - [模式演變規則](/v1_tw/ch4/#模式演變規則)
      - [但Writer模式到底是什麼？](/v1_tw/ch4/#但writer模式到底是什麼)
      - [動態生成的模式](/v1_tw/ch4/#動態生成的模式)
      - [程式碼生成和動態型別的語言](/v1_tw/ch4/#程式碼生成和動態型別的語言)
    - [模式的優點](/v1_tw/ch4/#模式的優點)
  - [資料流的型別](/v1_tw/ch4/#資料流的型別)
    - [資料庫中的資料流](/v1_tw/ch4/#資料庫中的資料流)
      - [在不同的時間寫入不同的值](/v1_tw/ch4/#在不同的時間寫入不同的值)
      - [歸檔儲存](/v1_tw/ch4/#歸檔儲存)
    - [服務中的資料流：REST與RPC](/v1_tw/ch4/#服務中的資料流rest與rpc)
      - [Web服務](/v1_tw/ch4/#web服務)
      - [遠端過程呼叫（RPC）的問題](/v1_tw/ch4/#遠端過程呼叫rpc的問題)
      - [RPC的當前方向](/v1_tw/ch4/#rpc的當前方向)
      - [資料編碼與RPC的演化](/v1_tw/ch4/#資料編碼與rpc的演化)
    - [訊息傳遞中的資料流](/v1_tw/ch4/#訊息傳遞中的資料流)
      - [訊息代理](/v1_tw/ch4/#訊息代理)
      - [分散式的Actor框架](/v1_tw/ch4/#分散式的actor框架)
  - [本章小結](/v1_tw/ch4/#本章小結)
  - [參考文獻](/v1_tw/ch4/#參考文獻)
- [II 分散式資料](/v1_tw/part-ii/)
  - [伸縮至更高的載荷](/v1_tw/part-ii/#伸縮至更高的載荷)
    - [無共享架構](/v1_tw/part-ii/#無共享架構)
    - [複製 vs 分割槽](/v1_tw/part-ii/#複製-vs-分割槽)
  - [索引](/v1_tw/part-ii/#索引)
  - [參考文獻](/v1_tw/part-ii/#參考文獻)
- [5 複製](/v1_tw/ch5/)
  - [領導者與追隨者](/v1_tw/ch5/#領導者與追隨者)
    - [同步複製與非同步複製](/v1_tw/ch5/#同步複製與非同步複製)
    - [關於複製的研究](/v1_tw/ch5/#關於複製的研究)
    - [設定新從庫](/v1_tw/ch5/#設定新從庫)
    - [處理節點宕機](/v1_tw/ch5/#處理節點宕機)
      - [從庫失效：追趕恢復](/v1_tw/ch5/#從庫失效追趕恢復)
      - [主庫失效：故障切換](/v1_tw/ch5/#主庫失效故障切換)
    - [複製日誌的實現](/v1_tw/ch5/#複製日誌的實現)
      - [基於語句的複製](/v1_tw/ch5/#基於語句的複製)
      - [傳輸預寫式日誌（WAL）](/v1_tw/ch5/#傳輸預寫式日誌wal)
      - [邏輯日誌複製（基於行）](/v1_tw/ch5/#邏輯日誌複製基於行)
      - [基於觸發器的複製](/v1_tw/ch5/#基於觸發器的複製)
  - [複製延遲問題](/v1_tw/ch5/#複製延遲問題)
    - [讀己之寫](/v1_tw/ch5/#讀己之寫)
    - [單調讀](/v1_tw/ch5/#單調讀)
    - [一致字首讀](/v1_tw/ch5/#一致字首讀)
    - [複製延遲的解決方案](/v1_tw/ch5/#複製延遲的解決方案)
  - [多主複製](/v1_tw/ch5/#多主複製)
    - [多主複製的應用場景](/v1_tw/ch5/#多主複製的應用場景)
      - [運維多個資料中心](/v1_tw/ch5/#運維多個資料中心)
      - [需要離線操作的客戶端](/v1_tw/ch5/#需要離線操作的客戶端)
      - [協同編輯](/v1_tw/ch5/#協同編輯)
    - [處理寫入衝突](/v1_tw/ch5/#處理寫入衝突)
      - [同步與非同步衝突檢測](/v1_tw/ch5/#同步與非同步衝突檢測)
      - [避免衝突](/v1_tw/ch5/#避免衝突)
      - [收斂至一致的狀態](/v1_tw/ch5/#收斂至一致的狀態)
      - [自定義衝突解決邏輯](/v1_tw/ch5/#自定義衝突解決邏輯)
      - [自動衝突解決](/v1_tw/ch5/#自動衝突解決)
      - [什麼是衝突？](/v1_tw/ch5/#什麼是衝突)
    - [多主複製拓撲](/v1_tw/ch5/#多主複製拓撲)
  - [無主複製](/v1_tw/ch5/#無主複製)
    - [當節點故障時寫入資料庫](/v1_tw/ch5/#當節點故障時寫入資料庫)
      - [讀修復和反熵](/v1_tw/ch5/#讀修復和反熵)
      - [讀寫的法定人數](/v1_tw/ch5/#讀寫的法定人數)
    - [法定人數一致性的侷限性](/v1_tw/ch5/#法定人數一致性的侷限性)
      - [監控陳舊度](/v1_tw/ch5/#監控陳舊度)
    - [寬鬆的法定人數與提示移交](/v1_tw/ch5/#寬鬆的法定人數與提示移交)
      - [運維多個資料中心](/v1_tw/ch5/#運維多個資料中心-1)
    - [檢測併發寫入](/v1_tw/ch5/#檢測併發寫入)
      - [最後寫入勝利（丟棄併發寫入）](/v1_tw/ch5/#最後寫入勝利丟棄併發寫入)
      - [“此前發生”的關係和併發](/v1_tw/ch5/#此前發生的關係和併發)
      - [併發性、時間和相對性](/v1_tw/ch5/#併發性時間和相對性)
      - [捕獲&quot;此前發生&quot;關係](/v1_tw/ch5/#捕獲此前發生關係)
      - [合併併發寫入的值](/v1_tw/ch5/#合併併發寫入的值)
      - [版本向量](/v1_tw/ch5/#版本向量)
      - [版本向量和向量時鐘](/v1_tw/ch5/#版本向量和向量時鐘)
  - [本章小結](/v1_tw/ch5/#本章小結)
  - [參考文獻](/v1_tw/ch5/#參考文獻)
- [6 分割槽](/v1_tw/ch6/)
  - [分割槽與複製](/v1_tw/ch6/#分割槽與複製)
  - [鍵值資料的分割槽](/v1_tw/ch6/#鍵值資料的分割槽)
    - [根據鍵的範圍分割槽](/v1_tw/ch6/#根據鍵的範圍分割槽)
    - [根據鍵的雜湊分割槽](/v1_tw/ch6/#根據鍵的雜湊分割槽)
      - [一致性雜湊](/v1_tw/ch6/#一致性雜湊)
    - [負載偏斜與熱點消除](/v1_tw/ch6/#負載偏斜與熱點消除)
  - [分割槽與次級索引](/v1_tw/ch6/#分割槽與次級索引)
    - [基於文件的次級索引進行分割槽](/v1_tw/ch6/#基於文件的次級索引進行分割槽)
    - [基於關鍵詞(Term)的次級索引進行分割槽](/v1_tw/ch6/#基於關鍵詞term的次級索引進行分割槽)
  - [分割槽再平衡](/v1_tw/ch6/#分割槽再平衡)
    - [再平衡策略](/v1_tw/ch6/#再平衡策略)
      - [反面教材：hash mod N](/v1_tw/ch6/#反面教材hash-mod-n)
      - [固定數量的分割槽](/v1_tw/ch6/#固定數量的分割槽)
      - [動態分割槽](/v1_tw/ch6/#動態分割槽)
      - [按節點比例分割槽](/v1_tw/ch6/#按節點比例分割槽)
    - [運維：手動還是自動再平衡](/v1_tw/ch6/#運維手動還是自動再平衡)
  - [請求路由](/v1_tw/ch6/#請求路由)
    - [執行並行查詢](/v1_tw/ch6/#執行並行查詢)
  - [本章小結](/v1_tw/ch6/#本章小結)
  - [參考文獻](/v1_tw/ch6/#參考文獻)
- [7 事務](/v1_tw/ch7/)
  - [事務的棘手概念](/v1_tw/ch7/#事務的棘手概念)
    - [ACID的含義](/v1_tw/ch7/#acid的含義)
      - [原子性](/v1_tw/ch7/#原子性)
      - [一致性](/v1_tw/ch7/#一致性)
      - [隔離性](/v1_tw/ch7/#隔離性)
      - [永續性](/v1_tw/ch7/#永續性)
      - [複製與永續性](/v1_tw/ch7/#複製與永續性)
    - [單物件和多物件操作](/v1_tw/ch7/#單物件和多物件操作)
      - [單物件寫入](/v1_tw/ch7/#單物件寫入)
      - [多物件事務的需求](/v1_tw/ch7/#多物件事務的需求)
      - [處理錯誤和中止](/v1_tw/ch7/#處理錯誤和中止)
  - [弱隔離級別](/v1_tw/ch7/#弱隔離級別)
    - [讀已提交](/v1_tw/ch7/#讀已提交)
      - [沒有髒讀](/v1_tw/ch7/#沒有髒讀)
      - [沒有髒寫](/v1_tw/ch7/#沒有髒寫)
      - [實現讀已提交](/v1_tw/ch7/#實現讀已提交)
    - [快照隔離和可重複讀](/v1_tw/ch7/#快照隔離和可重複讀)
      - [實現快照隔離](/v1_tw/ch7/#實現快照隔離)
      - [觀察一致性快照的可見性規則](/v1_tw/ch7/#觀察一致性快照的可見性規則)
      - [索引和快照隔離](/v1_tw/ch7/#索引和快照隔離)
      - [可重複讀與命名混淆](/v1_tw/ch7/#可重複讀與命名混淆)
    - [防止丟失更新](/v1_tw/ch7/#防止丟失更新)
      - [原子寫](/v1_tw/ch7/#原子寫)
      - [顯式鎖定](/v1_tw/ch7/#顯式鎖定)
      - [自動檢測丟失的更新](/v1_tw/ch7/#自動檢測丟失的更新)
      - [比較並設定（CAS）](/v1_tw/ch7/#比較並設定cas)
      - [衝突解決和複製](/v1_tw/ch7/#衝突解決和複製)
    - [寫入偏差與幻讀](/v1_tw/ch7/#寫入偏差與幻讀)
      - [寫入偏差的特徵](/v1_tw/ch7/#寫入偏差的特徵)
      - [寫入偏差的更多例子](/v1_tw/ch7/#寫入偏差的更多例子)
      - [導致寫入偏差的幻讀](/v1_tw/ch7/#導致寫入偏差的幻讀)
      - [物化衝突](/v1_tw/ch7/#物化衝突)
  - [可序列化](/v1_tw/ch7/#可序列化)
    - [真的序列執行](/v1_tw/ch7/#真的序列執行)
      - [在儲存過程中封裝事務](/v1_tw/ch7/#在儲存過程中封裝事務)
      - [儲存過程的優點和缺點](/v1_tw/ch7/#儲存過程的優點和缺點)
      - [分割槽](/v1_tw/ch7/#分割槽)
      - [序列執行小結](/v1_tw/ch7/#序列執行小結)
    - [兩階段鎖定](/v1_tw/ch7/#兩階段鎖定)
      - [2PL不是2PC](/v1_tw/ch7/#2pl不是2pc)
      - [實現兩階段鎖](/v1_tw/ch7/#實現兩階段鎖)
      - [兩階段鎖定的效能](/v1_tw/ch7/#兩階段鎖定的效能)
      - [謂詞鎖](/v1_tw/ch7/#謂詞鎖)
      - [索引範圍鎖](/v1_tw/ch7/#索引範圍鎖)
    - [可序列化快照隔離](/v1_tw/ch7/#可序列化快照隔離)
      - [悲觀與樂觀的併發控制](/v1_tw/ch7/#悲觀與樂觀的併發控制)
      - [基於過時前提的決策](/v1_tw/ch7/#基於過時前提的決策)
      - [檢測舊MVCC讀取](/v1_tw/ch7/#檢測舊mvcc讀取)
      - [檢測影響之前讀取的寫入](/v1_tw/ch7/#檢測影響之前讀取的寫入)
      - [可序列化快照隔離的效能](/v1_tw/ch7/#可序列化快照隔離的效能)
  - [本章小結](/v1_tw/ch7/#本章小結)
  - [參考文獻](/v1_tw/ch7/#參考文獻)
- [8 分散式系統的麻煩](/v1_tw/ch8/)
  - [故障與部分失效](/v1_tw/ch8/#故障與部分失效)
    - [雲端計算與超級計算機](/v1_tw/ch8/#雲端計算與超級計算機)
      - [從不可靠的元件構建可靠的系統](/v1_tw/ch8/#從不可靠的元件構建可靠的系統)
  - [不可靠的網路](/v1_tw/ch8/#不可靠的網路)
    - [真實世界的網路故障](/v1_tw/ch8/#真實世界的網路故障)
      - [網路分割槽](/v1_tw/ch8/#網路分割槽)
    - [檢測故障](/v1_tw/ch8/#檢測故障)
    - [超時與無窮的延遲](/v1_tw/ch8/#超時與無窮的延遲)
      - [網路擁塞和排隊](/v1_tw/ch8/#網路擁塞和排隊)
      - [TCP與UDP](/v1_tw/ch8/#tcp與udp)
    - [同步網路與非同步網路](/v1_tw/ch8/#同步網路與非同步網路)
      - [我們不能簡單地使網路延遲可預測嗎？](/v1_tw/ch8/#我們不能簡單地使網路延遲可預測嗎)
    - [延遲和資源利用](/v1_tw/ch8/#延遲和資源利用)
  - [不可靠的時鐘](/v1_tw/ch8/#不可靠的時鐘)
    - [單調鍾與日曆時鐘](/v1_tw/ch8/#單調鍾與日曆時鐘)
      - [日曆時鐘](/v1_tw/ch8/#日曆時鐘)
      - [單調鍾](/v1_tw/ch8/#單調鍾)
    - [時鐘同步與準確性](/v1_tw/ch8/#時鐘同步與準確性)
    - [依賴同步時鐘](/v1_tw/ch8/#依賴同步時鐘)
      - [有序事件的時間戳](/v1_tw/ch8/#有序事件的時間戳)
      - [時鐘讀數存在置信區間](/v1_tw/ch8/#時鐘讀數存在置信區間)
      - [全域性快照的同步時鐘](/v1_tw/ch8/#全域性快照的同步時鐘)
    - [程序暫停](/v1_tw/ch8/#程序暫停)
      - [響應時間保證](/v1_tw/ch8/#響應時間保證)
      - [實時是真的嗎？](/v1_tw/ch8/#實時是真的嗎)
      - [限制垃圾收集的影響](/v1_tw/ch8/#限制垃圾收集的影響)
  - [知識、真相與謊言](/v1_tw/ch8/#知識真相與謊言)
    - [真相由多數所定義](/v1_tw/ch8/#真相由多數所定義)
      - [領導者和鎖](/v1_tw/ch8/#領導者和鎖)
      - [防護令牌](/v1_tw/ch8/#防護令牌)
    - [拜占庭故障](/v1_tw/ch8/#拜占庭故障)
    - [拜占庭將軍問題](/v1_tw/ch8/#拜占庭將軍問題)
      - [弱謊言形式](/v1_tw/ch8/#弱謊言形式)
    - [系統模型與現實](/v1_tw/ch8/#系統模型與現實)
      - [演算法的正確性](/v1_tw/ch8/#演算法的正確性)
      - [安全性和活性](/v1_tw/ch8/#安全性和活性)
      - [將系統模型對映到現實世界](/v1_tw/ch8/#將系統模型對映到現實世界)
  - [本章小結](/v1_tw/ch8/#本章小結)
  - [參考文獻](/v1_tw/ch8/#參考文獻)
- [9 一致性與共識](/v1_tw/ch9/)
  - [一致性保證](/v1_tw/ch9/#一致性保證)
  - [線性一致性](/v1_tw/ch9/#線性一致性)
    - [什麼使得系統線性一致？](/v1_tw/ch9/#什麼使得系統線性一致)
    - [依賴線性一致性](/v1_tw/ch9/#依賴線性一致性)
      - [鎖定和領導選舉](/v1_tw/ch9/#鎖定和領導選舉)
      - [約束和唯一性保證](/v1_tw/ch9/#約束和唯一性保證)
      - [跨通道的時序依賴](/v1_tw/ch9/#跨通道的時序依賴)
    - [實現線性一致的系統](/v1_tw/ch9/#實現線性一致的系統)
      - [線性一致性和法定人數](/v1_tw/ch9/#線性一致性和法定人數)
    - [線性一致性的代價](/v1_tw/ch9/#線性一致性的代價)
      - [CAP定理](/v1_tw/ch9/#cap定理)
      - [CAP定理沒有幫助](/v1_tw/ch9/#cap定理沒有幫助)
      - [線性一致性和網路延遲](/v1_tw/ch9/#線性一致性和網路延遲)
  - [順序保證](/v1_tw/ch9/#順序保證)
    - [順序與因果關係](/v1_tw/ch9/#順序與因果關係)
      - [因果順序不是全序的](/v1_tw/ch9/#因果順序不是全序的)
      - [線性一致性強於因果一致性](/v1_tw/ch9/#線性一致性強於因果一致性)
      - [捕獲因果關係](/v1_tw/ch9/#捕獲因果關係)
    - [序列號順序](/v1_tw/ch9/#序列號順序)
      - [非因果序列號生成器](/v1_tw/ch9/#非因果序列號生成器)
      - [蘭伯特時間戳](/v1_tw/ch9/#蘭伯特時間戳)
      - [光有時間戳排序還不夠](/v1_tw/ch9/#光有時間戳排序還不夠)
    - [全序廣播](/v1_tw/ch9/#全序廣播)
      - [順序保證的範圍](/v1_tw/ch9/#順序保證的範圍)
      - [使用全序廣播](/v1_tw/ch9/#使用全序廣播)
      - [使用全序廣播實現線性一致的儲存](/v1_tw/ch9/#使用全序廣播實現線性一致的儲存)
      - [使用線性一致性儲存實現全序廣播](/v1_tw/ch9/#使用線性一致性儲存實現全序廣播)
  - [分散式事務與共識](/v1_tw/ch9/#分散式事務與共識)
    - [共識的不可能性](/v1_tw/ch9/#共識的不可能性)
    - [原子提交與兩階段提交](/v1_tw/ch9/#原子提交與兩階段提交)
      - [從單節點到分散式原子提交](/v1_tw/ch9/#從單節點到分散式原子提交)
      - [兩階段提交簡介](/v1_tw/ch9/#兩階段提交簡介)
      - [不要把2PC和2PL搞混了](/v1_tw/ch9/#不要把2pc和2pl搞混了)
      - [系統承諾](/v1_tw/ch9/#系統承諾)
      - [協調者失效](/v1_tw/ch9/#協調者失效)
      - [三階段提交](/v1_tw/ch9/#三階段提交)
    - [實踐中的分散式事務](/v1_tw/ch9/#實踐中的分散式事務)
      - [恰好一次的訊息處理](/v1_tw/ch9/#恰好一次的訊息處理)
      - [XA事務](/v1_tw/ch9/#xa事務)
      - [懷疑時持有鎖](/v1_tw/ch9/#懷疑時持有鎖)
      - [從協調者故障中恢復](/v1_tw/ch9/#從協調者故障中恢復)
      - [分散式事務的限制](/v1_tw/ch9/#分散式事務的限制)
    - [容錯共識](/v1_tw/ch9/#容錯共識)
      - [共識演算法和全序廣播](/v1_tw/ch9/#共識演算法和全序廣播)
      - [單主複製與共識](/v1_tw/ch9/#單主複製與共識)
      - [紀元編號和法定人數](/v1_tw/ch9/#紀元編號和法定人數)
      - [共識的侷限性](/v1_tw/ch9/#共識的侷限性)
    - [成員與協調服務](/v1_tw/ch9/#成員與協調服務)
      - [將工作分配給節點](/v1_tw/ch9/#將工作分配給節點)
      - [服務發現](/v1_tw/ch9/#服務發現)
      - [成員資格服務](/v1_tw/ch9/#成員資格服務)
  - [本章小結](/v1_tw/ch9/#本章小結)
  - [參考文獻](/v1_tw/ch9/#參考文獻)
- [III 衍生資料](/v1_tw/part-iii/)
  - [記錄系統和衍生資料系統](/v1_tw/part-iii/#記錄系統和衍生資料系統)
  - [章節概述](/v1_tw/part-iii/#章節概述)
  - [索引](/v1_tw/part-iii/#索引)
- [10 批處理](/v1_tw/ch10/)
  - [使用Unix工具的批處理](/v1_tw/ch10/#使用unix工具的批處理)
    - [簡單日誌分析](/v1_tw/ch10/#簡單日誌分析)
      - [命令鏈與自定義程式](/v1_tw/ch10/#命令鏈與自定義程式)
      - [排序 VS 記憶體中的聚合](/v1_tw/ch10/#排序-vs-記憶體中的聚合)
    - [Unix哲學](/v1_tw/ch10/#unix哲學)
      - [統一的介面](/v1_tw/ch10/#統一的介面)
      - [邏輯與佈線相分離](/v1_tw/ch10/#邏輯與佈線相分離)
      - [透明度和實驗](/v1_tw/ch10/#透明度和實驗)
  - [MapReduce和分散式檔案系統](/v1_tw/ch10/#mapreduce和分散式檔案系統)
    - [MapReduce作業執行](/v1_tw/ch10/#mapreduce作業執行)
      - [分散式執行MapReduce](/v1_tw/ch10/#分散式執行mapreduce)
      - [MapReduce工作流](/v1_tw/ch10/#mapreduce工作流)
    - [Reduce側連線與分組](/v1_tw/ch10/#reduce側連線與分組)
      - [示例：使用者活動事件分析](/v1_tw/ch10/#示例使用者活動事件分析)
      - [排序合併連線](/v1_tw/ch10/#排序合併連線)
      - [把相關資料放在一起](/v1_tw/ch10/#把相關資料放在一起)
      - [分組](/v1_tw/ch10/#分組)
      - [處理偏斜](/v1_tw/ch10/#處理偏斜)
    - [Map側連線](/v1_tw/ch10/#map側連線)
      - [廣播雜湊連線](/v1_tw/ch10/#廣播雜湊連線)
      - [分割槽雜湊連線](/v1_tw/ch10/#分割槽雜湊連線)
      - [Map側合併連線](/v1_tw/ch10/#map側合併連線)
      - [MapReduce工作流與Map側連線](/v1_tw/ch10/#mapreduce工作流與map側連線)
    - [批處理工作流的輸出](/v1_tw/ch10/#批處理工作流的輸出)
      - [建立搜尋索引](/v1_tw/ch10/#建立搜尋索引)
      - [鍵值儲存作為批處理輸出](/v1_tw/ch10/#鍵值儲存作為批處理輸出)
      - [批處理輸出的哲學](/v1_tw/ch10/#批處理輸出的哲學)
    - [Hadoop與分散式資料庫的對比](/v1_tw/ch10/#hadoop與分散式資料庫的對比)
      - [儲存多樣性](/v1_tw/ch10/#儲存多樣性)
      - [處理模型的多樣性](/v1_tw/ch10/#處理模型的多樣性)
      - [針對頻繁故障設計](/v1_tw/ch10/#針對頻繁故障設計)
  - [MapReduce之後](/v1_tw/ch10/#mapreduce之後)
    - [物化中間狀態](/v1_tw/ch10/#物化中間狀態)
      - [資料流引擎](/v1_tw/ch10/#資料流引擎)
      - [容錯](/v1_tw/ch10/#容錯)
      - [關於物化的討論](/v1_tw/ch10/#關於物化的討論)
    - [圖與迭代處理](/v1_tw/ch10/#圖與迭代處理)
      - [Pregel處理模型](/v1_tw/ch10/#pregel處理模型)
      - [容錯](/v1_tw/ch10/#容錯-1)
      - [並行執行](/v1_tw/ch10/#並行執行)
    - [高階API和語言](/v1_tw/ch10/#高階api和語言)
      - [向宣告式查詢語言的轉變](/v1_tw/ch10/#向宣告式查詢語言的轉變)
      - [專業化的不同領域](/v1_tw/ch10/#專業化的不同領域)
  - [本章小結](/v1_tw/ch10/#本章小結)
  - [參考文獻](/v1_tw/ch10/#參考文獻)
- [11 流處理](/v1_tw/ch11/)
  - [傳遞事件流](/v1_tw/ch11/#傳遞事件流)
    - [訊息傳遞系統](/v1_tw/ch11/#訊息傳遞系統)
      - [直接從生產者傳遞給消費者](/v1_tw/ch11/#直接從生產者傳遞給消費者)
      - [訊息代理](/v1_tw/ch11/#訊息代理)
      - [訊息代理與資料庫的對比](/v1_tw/ch11/#訊息代理與資料庫的對比)
      - [多個消費者](/v1_tw/ch11/#多個消費者)
      - [確認與重新傳遞](/v1_tw/ch11/#確認與重新傳遞)
    - [分割槽日誌](/v1_tw/ch11/#分割槽日誌)
      - [使用日誌進行訊息儲存](/v1_tw/ch11/#使用日誌進行訊息儲存)
      - [日誌與傳統的訊息傳遞相比](/v1_tw/ch11/#日誌與傳統的訊息傳遞相比)
      - [消費者偏移量](/v1_tw/ch11/#消費者偏移量)
      - [磁碟空間使用](/v1_tw/ch11/#磁碟空間使用)
      - [當消費者跟不上生產者時](/v1_tw/ch11/#當消費者跟不上生產者時)
      - [重播舊訊息](/v1_tw/ch11/#重播舊訊息)
  - [資料庫與流](/v1_tw/ch11/#資料庫與流)
    - [保持系統同步](/v1_tw/ch11/#保持系統同步)
    - [變更資料捕獲](/v1_tw/ch11/#變更資料捕獲)
      - [變更資料捕獲的實現](/v1_tw/ch11/#變更資料捕獲的實現)
      - [初始快照](/v1_tw/ch11/#初始快照)
      - [日誌壓縮](/v1_tw/ch11/#日誌壓縮)
      - [變更流的API支援](/v1_tw/ch11/#變更流的api支援)
    - [事件溯源](/v1_tw/ch11/#事件溯源)
      - [從事件日誌中派生出當前狀態](/v1_tw/ch11/#從事件日誌中派生出當前狀態)
      - [命令和事件](/v1_tw/ch11/#命令和事件)
    - [狀態、流和不變性](/v1_tw/ch11/#狀態流和不變性)
      - [不可變事件的優點](/v1_tw/ch11/#不可變事件的優點)
      - [從同一事件日誌中派生多個檢視](/v1_tw/ch11/#從同一事件日誌中派生多個檢視)
      - [併發控制](/v1_tw/ch11/#併發控制)
      - [不變性的侷限性](/v1_tw/ch11/#不變性的侷限性)
  - [流處理](/v1_tw/ch11/#流處理)
    - [流處理的應用](/v1_tw/ch11/#流處理的應用)
      - [複合事件處理](/v1_tw/ch11/#複合事件處理)
      - [流分析](/v1_tw/ch11/#流分析)
      - [維護物化檢視](/v1_tw/ch11/#維護物化檢視)
      - [在流上搜尋](/v1_tw/ch11/#在流上搜尋)
      - [訊息傳遞和RPC](/v1_tw/ch11/#訊息傳遞和rpc)
    - [時間推理](/v1_tw/ch11/#時間推理)
      - [事件時間與處理時間](/v1_tw/ch11/#事件時間與處理時間)
      - [知道什麼時候準備好了](/v1_tw/ch11/#知道什麼時候準備好了)
      - [你用的是誰的時鐘？](/v1_tw/ch11/#你用的是誰的時鐘)
      - [視窗的型別](/v1_tw/ch11/#視窗的型別)
    - [流連線](/v1_tw/ch11/#流連線)
      - [流流連線（視窗連線）](/v1_tw/ch11/#流流連線視窗連線)
      - [流表連線（流擴充）](/v1_tw/ch11/#流表連線流擴充)
      - [表表連線（維護物化檢視）](/v1_tw/ch11/#表表連線維護物化檢視)
      - [連線的時間依賴性](/v1_tw/ch11/#連線的時間依賴性)
    - [容錯](/v1_tw/ch11/#容錯)
      - [微批次與存檔點](/v1_tw/ch11/#微批次與存檔點)
      - [原子提交再現](/v1_tw/ch11/#原子提交再現)
      - [冪等性](/v1_tw/ch11/#冪等性)
      - [失敗後重建狀態](/v1_tw/ch11/#失敗後重建狀態)
  - [本章小結](/v1_tw/ch11/#本章小結)
  - [參考文獻](/v1_tw/ch11/#參考文獻)
- [12 資料系統的未來](/v1_tw/ch12/)
  - [資料整合](/v1_tw/ch12/#資料整合)
    - [組合使用衍生資料的工具](/v1_tw/ch12/#組合使用衍生資料的工具)
      - [理解資料流](/v1_tw/ch12/#理解資料流)
      - [衍生資料與分散式事務](/v1_tw/ch12/#衍生資料與分散式事務)
      - [全序的限制](/v1_tw/ch12/#全序的限制)
      - [排序事件以捕獲因果關係](/v1_tw/ch12/#排序事件以捕獲因果關係)
    - [批處理與流處理](/v1_tw/ch12/#批處理與流處理)
      - [維護衍生狀態](/v1_tw/ch12/#維護衍生狀態)
      - [應用演化後重新處理資料](/v1_tw/ch12/#應用演化後重新處理資料)
    - [鐵路上的模式遷移](/v1_tw/ch12/#鐵路上的模式遷移)
      - [Lambda架構](/v1_tw/ch12/#lambda架構)
      - [統一批處理和流處理](/v1_tw/ch12/#統一批處理和流處理)
  - [分拆資料庫](/v1_tw/ch12/#分拆資料庫)
    - [組合使用資料儲存技術](/v1_tw/ch12/#組合使用資料儲存技術)
      - [建立索引](/v1_tw/ch12/#建立索引)
      - [一切的後設資料庫](/v1_tw/ch12/#一切的後設資料庫)
      - [開展分拆工作](/v1_tw/ch12/#開展分拆工作)
      - [分拆系統vs整合系統](/v1_tw/ch12/#分拆系統vs整合系統)
      - [少了什麼？](/v1_tw/ch12/#少了什麼)
    - [圍繞資料流設計應用](/v1_tw/ch12/#圍繞資料流設計應用)
      - [應用程式碼作為衍生函式](/v1_tw/ch12/#應用程式碼作為衍生函式)
      - [應用程式碼和狀態的分離](/v1_tw/ch12/#應用程式碼和狀態的分離)
      - [資料流：應用程式碼與狀態變化的互動](/v1_tw/ch12/#資料流應用程式碼與狀態變化的互動)
      - [流處理器和服務](/v1_tw/ch12/#流處理器和服務)
    - [觀察衍生資料狀態](/v1_tw/ch12/#觀察衍生資料狀態)
      - [物化檢視和快取](/v1_tw/ch12/#物化檢視和快取)
      - [有狀態、可離線的客戶端](/v1_tw/ch12/#有狀態可離線的客戶端)
      - [將狀態變更推送給客戶端](/v1_tw/ch12/#將狀態變更推送給客戶端)
      - [端到端的事件流](/v1_tw/ch12/#端到端的事件流)
      - [讀也是事件](/v1_tw/ch12/#讀也是事件)
      - [多分割槽資料處理](/v1_tw/ch12/#多分割槽資料處理)
  - [將事情做正確](/v1_tw/ch12/#將事情做正確)
    - [資料庫的端到端原則](/v1_tw/ch12/#資料庫的端到端原則)
      - [正好執行一次操作](/v1_tw/ch12/#正好執行一次操作)
      - [抑制重複](/v1_tw/ch12/#抑制重複)
      - [操作識別符號](/v1_tw/ch12/#操作識別符號)
      - [端到端原則](/v1_tw/ch12/#端到端原則)
      - [在資料系統中應用端到端思考](/v1_tw/ch12/#在資料系統中應用端到端思考)
    - [強制約束](/v1_tw/ch12/#強制約束)
      - [唯一性約束需要達成共識](/v1_tw/ch12/#唯一性約束需要達成共識)
      - [基於日誌訊息傳遞中的唯一性](/v1_tw/ch12/#基於日誌訊息傳遞中的唯一性)
      - [多分割槽請求處理](/v1_tw/ch12/#多分割槽請求處理)
    - [及時性與完整性](/v1_tw/ch12/#及時性與完整性)
      - [資料流系統的正確性](/v1_tw/ch12/#資料流系統的正確性)
      - [寬鬆地解釋約束](/v1_tw/ch12/#寬鬆地解釋約束)
      - [無協調資料系統](/v1_tw/ch12/#無協調資料系統)
    - [信任但驗證](/v1_tw/ch12/#信任但驗證)
      - [維護完整性，儘管軟體有Bug](/v1_tw/ch12/#維護完整性儘管軟體有bug)
      - [不要盲目信任承諾](/v1_tw/ch12/#不要盲目信任承諾)
      - [驗證的文化](/v1_tw/ch12/#驗證的文化)
      - [為可審計性而設計](/v1_tw/ch12/#為可審計性而設計)
      - [端到端原則重現](/v1_tw/ch12/#端到端原則重現)
      - [用於可審計資料系統的工具](/v1_tw/ch12/#用於可審計資料系統的工具)
  - [做正確的事情](/v1_tw/ch12/#做正確的事情)
    - [預測性分析](/v1_tw/ch12/#預測性分析)
      - [偏見與歧視](/v1_tw/ch12/#偏見與歧視)
      - [責任與問責](/v1_tw/ch12/#責任與問責)
      - [反饋迴圈](/v1_tw/ch12/#反饋迴圈)
    - [隱私和追蹤](/v1_tw/ch12/#隱私和追蹤)
      - [監視](/v1_tw/ch12/#監視)
      - [同意與選擇的自由](/v1_tw/ch12/#同意與選擇的自由)
      - [隱私與資料使用](/v1_tw/ch12/#隱私與資料使用)
      - [資料資產與權力](/v1_tw/ch12/#資料資產與權力)
      - [回顧工業革命](/v1_tw/ch12/#回顧工業革命)
      - [立法與自律](/v1_tw/ch12/#立法與自律)
  - [本章小結](/v1_tw/ch12/#本章小結)
  - [參考文獻](/v1_tw/ch12/#參考文獻)
- [術語表](/v1_tw/glossary/)
  - [非同步（asynchronous）](/v1_tw/glossary/#非同步asynchronous)
  - [原子（atomic）](/v1_tw/glossary/#原子atomic)
  - [背壓（backpressure）](/v1_tw/glossary/#背壓backpressure)
  - [批處理（batch process）](/v1_tw/glossary/#批處理batch-process)
  - [邊界（bounded）](/v1_tw/glossary/#邊界bounded)
  - [拜占庭故障（Byzantine fault）](/v1_tw/glossary/#拜占庭故障byzantine-fault)
  - [快取（cache）](/v1_tw/glossary/#快取cache)
  - [CAP定理（CAP theorem）](/v1_tw/glossary/#cap定理cap-theorem)
  - [因果關係（causality）](/v1_tw/glossary/#因果關係causality)
  - [共識（consensus）](/v1_tw/glossary/#共識consensus)
  - [資料倉儲（data warehouse）](/v1_tw/glossary/#資料倉儲data-warehouse)
  - [宣告式（declarative）](/v1_tw/glossary/#宣告式declarative)
  - [反正規化（denormalize）](/v1_tw/glossary/#反正規化denormalize)
  - [衍生資料（derived data）](/v1_tw/glossary/#衍生資料derived-data)
  - [確定性（deterministic）](/v1_tw/glossary/#確定性deterministic)
  - [分散式（distributed）](/v1_tw/glossary/#分散式distributed)
  - [持久（durable）](/v1_tw/glossary/#持久durable)
  - [ETL（Extract-Transform-Load）](/v1_tw/glossary/#etlextract-transform-load)
  - [故障切換（failover）](/v1_tw/glossary/#故障切換failover)
  - [容錯（fault-tolerant）](/v1_tw/glossary/#容錯fault-tolerant)
  - [流量控制（flow control）](/v1_tw/glossary/#流量控制flow-control)
  - [追隨者（follower）](/v1_tw/glossary/#追隨者follower)
  - [全文檢索（full-text search）](/v1_tw/glossary/#全文檢索full-text-search)
  - [圖（graph）](/v1_tw/glossary/#圖graph)
  - [雜湊（hash）](/v1_tw/glossary/#雜湊hash)
  - [冪等（idempotent）](/v1_tw/glossary/#冪等idempotent)
  - [索引（index）](/v1_tw/glossary/#索引index)
  - [隔離性（isolation）](/v1_tw/glossary/#隔離性isolation)
  - [連線（join）](/v1_tw/glossary/#連線join)
  - [領導者（leader）](/v1_tw/glossary/#領導者leader)
  - [線性化（linearizable）](/v1_tw/glossary/#線性化linearizable)
  - [區域性（locality）](/v1_tw/glossary/#區域性locality)
  - [鎖（lock）](/v1_tw/glossary/#鎖lock)
  - [日誌（log）](/v1_tw/glossary/#日誌log)
  - [物化（materialize）](/v1_tw/glossary/#物化materialize)
  - [節點（node）](/v1_tw/glossary/#節點node)
  - [正規化（normalized）](/v1_tw/glossary/#正規化normalized)
  - [OLAP（Online Analytic Processing）](/v1_tw/glossary/#olaponline-analytic-processing)
  - [OLTP（Online Transaction Processing）](/v1_tw/glossary/#oltponline-transaction-processing)
  - [分割槽（partitioning）](/v1_tw/glossary/#分割槽partitioning)
  - [百分位點（percentile）](/v1_tw/glossary/#百分位點percentile)
  - [主鍵（primary key）](/v1_tw/glossary/#主鍵primary-key)
  - [法定人數（quorum）](/v1_tw/glossary/#法定人數quorum)
  - [再平衡（rebalance）](/v1_tw/glossary/#再平衡rebalance)
  - [複製（replication）](/v1_tw/glossary/#複製replication)
  - [模式（schema）](/v1_tw/glossary/#模式schema)
  - [次級索引（secondary index）](/v1_tw/glossary/#次級索引secondary-index)
  - [可序列化（serializable）](/v1_tw/glossary/#可序列化serializable)
  - [無共享（shared-nothing）](/v1_tw/glossary/#無共享shared-nothing)
  - [偏斜（skew）](/v1_tw/glossary/#偏斜skew)
  - [腦裂（split brain）](/v1_tw/glossary/#腦裂split-brain)
  - [儲存過程（stored procedure）](/v1_tw/glossary/#儲存過程stored-procedure)
  - [流處理（stream process）](/v1_tw/glossary/#流處理stream-process)
  - [同步（synchronous）](/v1_tw/glossary/#同步synchronous)
  - [記錄系統（system of record）](/v1_tw/glossary/#記錄系統system-of-record)
  - [超時（timeout）](/v1_tw/glossary/#超時timeout)
  - [全序（total order）](/v1_tw/glossary/#全序total-order)
  - [事務（transaction）](/v1_tw/glossary/#事務transaction)
  - [兩階段提交（2PC, two-phase commit）](/v1_tw/glossary/#兩階段提交2pc-two-phase-commit)
  - [兩階段鎖定（2PL, two-phase locking）](/v1_tw/glossary/#兩階段鎖定2pl-two-phase-locking)
  - [無邊界（unbounded）](/v1_tw/glossary/#無邊界unbounded)
- [後記](/v1_tw/colophon/)
  - [關於作者](/v1_tw/colophon/#關於作者)
  - [關於譯者](/v1_tw/colophon/#關於譯者)
  - [後記](/v1_tw/colophon/#後記)
- [貢獻者](/v1_tw/contrib/)
  - [譯者](/v1_tw/contrib/#譯者)
  - [校訂與維護](/v1_tw/contrib/#校訂與維護)
  - [繁體中文版本](/v1_tw/contrib/#繁體中文版本)
  - [貢獻列表](/v1_tw/contrib/#貢獻列表)

## 插圖目錄 {#list-of-figures}

全書編號插圖使用穩定圖號和錨點；正文中的“圖 N-N”引用會同時連結到這裡列出的目標。

- [圖 1-1](/v1_tw/ch1/#fig_ddia_0101) — 一個可能的組合使用多個元件的資料系統架構
- [圖 1-2](/v1_tw/ch1/#fig_ddia_0102) — 推特主頁時間線的關係型模式簡單實現
- [圖 1-3](/v1_tw/ch1/#fig_ddia_0103) — 用於分發推特至關注者的資料流水線，2012 年 11 月的負載引數【16】
- [圖 1-4](/v1_tw/ch1/#fig_ddia_0104) — 展示了一個服務 100 次請求響應時間的均值與百分位數
- [圖 1-5](/v1_tw/ch1/#fig_ddia_0105) — 當一個請求需要多個後端請求時，單個後端慢請求就會拖慢整個終端使用者的請求
- [圖 2-1](/v1_tw/ch2/#fig_ddia_0201) — 使用關係型模式來表示領英簡介
- [圖 2-2](/v1_tw/ch2/#fig_ddia_0202) — 一對多關係構建了一個樹結構
- [圖 2-3](/v1_tw/ch2/#fig_ddia_0203) — 公司名不僅是字串，還是一個指向公司實體的連結（LinkedIn 截圖）
- [圖 2-4](/v1_tw/ch2/#fig_ddia_0204) — 使用多對多關係擴充套件簡歷
- [圖 2-5](/v1_tw/ch2/#fig_ddia_0205) — 圖資料結構示例（框代表頂點，箭頭代表邊）
- [圖 2-6](/v1_tw/ch2/#fig_ddia_0206) — 使用示例 2\-11 中的 Datalog 規則來確定愛達荷州在北美。
- [圖 3-1](/v1_tw/ch3/#fig_ddia_0301) — 以類 CSV 格式儲存鍵值對的日誌，並使用記憶體雜湊對映進行索引。
- [圖 3-2](/v1_tw/ch3/#fig_ddia_0302) — 鍵值更新日誌（統計貓咪影片的播放次數）的壓縮，只保留每個鍵的最近值
- [圖 3-3](/v1_tw/ch3/#fig_ddia_0303) — 同時執行壓縮和分段合併
- [圖 3-4](/v1_tw/ch3/#fig_ddia_0304) — 合併幾個 SSTable 段，只保留每個鍵的最新值
- [圖 3-5](/v1_tw/ch3/#fig_ddia_0305) — 具有記憶體索引的 SSTable
- [圖 3-6](/v1_tw/ch3/#fig_ddia_0306) — 使用 B 樹索引查詢一個鍵
- [圖 3-7](/v1_tw/ch3/#fig_ddia_0307) — 透過分割頁面來生長 B 樹
- [圖 3-8](/v1_tw/ch3/#fig_ddia_0308) — ETL 至資料倉儲的簡化提綱
- [圖 3-9](/v1_tw/ch3/#fig_ddia_0309) — 用於資料倉儲的星型模式的示例
- [圖 3-10](/v1_tw/ch3/#fig_ddia_0310) — 按列儲存關係型資料，而不是行
- [圖 3-11](/v1_tw/ch3/#fig_ddia_0311) — 壓縮的點陣圖索引儲存佈局
- [圖 3-12](/v1_tw/ch3/#fig_ddia_0312) — 資料立方的兩個維度，透過求和聚合
- [圖 4-1](/v1_tw/ch4/#fig_ddia_0401) — 使用 MessagePack 編碼的記錄（例 4\-1）
- [圖 4-2](/v1_tw/ch4/#fig_ddia_0402) — 使用 Thrift 二進位制協議編碼的記錄
- [圖 4-3](/v1_tw/ch4/#fig_ddia_0403) — 使用 Thrift 壓縮協議編碼的記錄
- [圖 4-4](/v1_tw/ch4/#fig_ddia_0404) — 使用 Protobuf 編碼的記錄
- [圖 4-5](/v1_tw/ch4/#fig_ddia_0405) — 使用 Avro 編碼的記錄
- [圖 4-6](/v1_tw/ch4/#fig_ddia_0406) — 一個 Avro Reader 解決讀寫模式的差異
- [圖 4-7](/v1_tw/ch4/#fig_ddia_0407) — 當較舊版本的應用程式更新以前由較新版本的應用程式編寫的資料時，如果不小心，資料可能會丟失。
- [圖 II-1](/v1_tw/part-ii/#fig_ddia_part-ii_01) — 一個資料庫切分為兩個分割槽，每個分割槽都有兩個副本
- [圖 5-1](/v1_tw/ch5/#fig_ddia_0501) — 基於領導者的（主\/從）複製
- [圖 5-2](/v1_tw/ch5/#fig_ddia_0502) — 基於領導者的複製：一個同步從庫和一個非同步從庫
- [圖 5-3](/v1_tw/ch5/#fig_ddia_0503) — 使用者寫入後從舊副本中讀取資料。需要寫後讀 \(read\-after\-write\) 的一致性來防止這種異常
- [圖 5-4](/v1_tw/ch5/#fig_ddia_0504) — 使用者首先從新副本讀取，然後從舊副本讀取。時間看上去回退了。為了防止這種異常，我們需要單調的讀取。
- [圖 5-5](/v1_tw/ch5/#fig_ddia_0505) — 如果某些分割槽的複製速度慢於其他分割槽，那麼觀察者可能會在看到問題之前先看到答案。
- [圖 5-6](/v1_tw/ch5/#fig_ddia_0506) — 跨多個資料中心的多主複製
- [圖 5-7](/v1_tw/ch5/#fig_ddia_0507) — 兩個主庫同時更新同一記錄引起的寫入衝突
- [圖 5-8](/v1_tw/ch5/#fig_ddia_0508) — 三種可以在多主複製中使用的拓撲示例。
- [圖 5-9](/v1_tw/ch5/#fig_ddia_0509) — 使用多主複製時，寫入可能會以錯誤的順序到達某些副本。
- [圖 5-10](/v1_tw/ch5/#fig_ddia_0510) — 法定寫入，法定讀取，並在節點中斷後讀修復。
- [圖 5-11](/v1_tw/ch5/#fig_ddia_0511) — 如果 \$w \+ r \> n\$，讀取 r 個副本，至少有一個副本必然包含了最近的成功寫入。
- [圖 5-12](/v1_tw/ch5/#fig_ddia_0512) — 併發寫入 Dynamo 風格的資料儲存：沒有明確定義的順序。
- [圖 5-13](/v1_tw/ch5/#fig_ddia_0513) — 在同時編輯購物車時捕獲兩個客戶端之間的因果關係。
- [圖 5-14](/v1_tw/ch5/#fig_ddia_0514) — 圖 5\-13 中的因果依賴關係圖。
- [圖 6-1](/v1_tw/ch6/#fig_ddia_0601) — 組合使用複製和分割槽：每個節點充當某些分割槽的主庫，其他分割槽充當從庫。
- [圖 6-2](/v1_tw/ch6/#fig_ddia_0602) — 印刷版百科全書按照關鍵字範圍進行分割槽
- [圖 6-3](/v1_tw/ch6/#fig_ddia_0603) — 按雜湊鍵分割槽
- [圖 6-4](/v1_tw/ch6/#fig_ddia_0604) — 基於文件的次級索引進行分割槽
- [圖 6-5](/v1_tw/ch6/#fig_ddia_0605) — 基於關鍵詞對次級索引進行分割槽
- [圖 6-6](/v1_tw/ch6/#fig_ddia_0606) — 將新節點新增到每個節點具有多個分割槽的資料庫叢集。
- [圖 6-7](/v1_tw/ch6/#fig_ddia_0607) — 將請求路由到正確節點的三種不同方式。
- [圖 6-8](/v1_tw/ch6/#fig_ddia_0608) — 使用 ZooKeeper 跟蹤分割槽分配給節點。
- [圖 7-1](/v1_tw/ch7/#fig_ddia_0701) — 兩個客戶之間的競爭狀態同時遞增計數器
- [圖 7-2](/v1_tw/ch7/#fig_ddia_0702) — 違反隔離性：一個事務讀取另一個事務的未被執行的寫入（“髒讀”）。
- [圖 7-3](/v1_tw/ch7/#fig_ddia_0703) — 原子性確保發生錯誤時，事務先前的任何寫入都會被撤消，以避免狀態不一致
- [圖 7-4](/v1_tw/ch7/#fig_ddia_0704) — 沒有髒讀：使用者 2 只有在使用者 1 的事務已經提交後才能看到 x 的新值。
- [圖 7-5](/v1_tw/ch7/#fig_ddia_0705) — 如果存在髒寫，來自不同事務的衝突寫入可能會混淆在一起
- [圖 7-6](/v1_tw/ch7/#fig_ddia_0706) — 讀取偏差：Alice 觀察資料庫處於不一致的狀態
- [圖 7-7](/v1_tw/ch7/#fig_ddia_0707) — 使用多版本物件實現快照隔離
- [圖 7-8](/v1_tw/ch7/#fig_ddia_0708) — 寫入偏差導致應用程式錯誤的示例
- [圖 7-9](/v1_tw/ch7/#fig_ddia_0709) — 互動式事務和儲存過程之間的區別（使用圖 7\-8 的示例事務）
- [圖 7-10](/v1_tw/ch7/#fig_ddia_0710) — 檢測事務何時從 MVCC 快照讀取過時的值
- [圖 7-11](/v1_tw/ch7/#fig_ddia_0711) — 在可序列化快照隔離中，檢測一個事務何時修改另一個事務的讀取。
- [圖 8-1](/v1_tw/ch8/#fig_ddia_0801) — 如果傳送請求並沒有得到響應，則無法區分（a）請求是否丟失，（b）遠端節點是否關閉，或（c）響應是否丟失。
- [圖 8-2](/v1_tw/ch8/#fig_ddia_0802) — 如果有多臺機器將網路流量傳送到同一目的地，則其交換機佇列可能會被填滿。在這裡，埠 1\,2 和 4 都試圖傳送資料包到埠 3
- [圖 8-3](/v1_tw/ch8/#fig_ddia_0803) — 客戶端 B 的寫入比客戶端 A 的寫入要晚，但是 B 的寫入具有較早的時間戳。
- [圖 8-4](/v1_tw/ch8/#fig_ddia_0804) — 分散式鎖的實現不正確：客戶端 1 認為它仍然具有有效的租約，即使它已經過期，從而破壞了儲存中的檔案
- [圖 8-5](/v1_tw/ch8/#fig_ddia_0805) — 只允許以增加防護令牌的順序進行寫操作，從而保證儲存安全
- [圖 9-1](/v1_tw/ch9/#fig_ddia_0901) — 這個系統是非線性一致的，導致了球迷的困惑
- [圖 9-2](/v1_tw/ch9/#fig_ddia_0902) — 如果讀取請求與寫入請求併發，則可能會返回舊值或新值
- [圖 9-3](/v1_tw/ch9/#fig_ddia_0903) — 任何一個讀取返回新值後，所有後續讀取（在相同或其他客戶端上）也必須返回新值。
- [圖 9-4](/v1_tw/ch9/#fig_ddia_0904) — 將讀取和寫入看起來已經生效的時間點進行視覺化。客戶端 B 的最後一次讀取不是線性一致的
- [圖 9-5](/v1_tw/ch9/#fig_ddia_0905) — Web 伺服器和影象縮放器透過檔案儲存和訊息佇列進行通訊，開啟競爭條件的可能性。
- [圖 9-6](/v1_tw/ch9/#fig_ddia_0906) — 非線性一致的執行，儘管使用了嚴格的法定人數
- [圖 9-7](/v1_tw/ch9/#fig_ddia_0907) — 網路中斷迫使在線性一致性和可用性之間做出選擇。
- [圖 9-8](/v1_tw/ch9/#fig_ddia_0908) — Lamport 時間戳提供了與因果關係一致的全序。
- [圖 9-9](/v1_tw/ch9/#fig_ddia_0909) — 兩階段提交（2PC）的成功執行
- [圖 9-10](/v1_tw/ch9/#fig_ddia_0910) — 參與者投贊成票後，協調者崩潰。資料庫 1 不知道是否提交或中止
- [圖 10-1](/v1_tw/ch10/#fig_ddia_1001) — 具有三個 Mapper 和三個 Reducer 的 MapReduce 任務
- [圖 10-2](/v1_tw/ch10/#fig_ddia_1002) — 使用者行為日誌與使用者檔案的連線
- [圖 10-3](/v1_tw/ch10/#fig_ddia_1003) — 在使用者 ID 上進行的 Reduce 端連線。如果輸入資料集分割槽為多個檔案，則每個分割槽都會被多個 Mapper 並行處理
- [圖 11-1](/v1_tw/ch11/#fig_ddia_1101) — （a）負載平衡：在消費者間共享消費主題；（b）扇出：將每條訊息傳遞給多個消費者。
- [圖 11-2](/v1_tw/ch11/#fig_ddia_1102) — 在處理 m3 時消費者 2 崩潰，因此稍後重傳至消費者 1
- [圖 11-3](/v1_tw/ch11/#fig_ddia_1103) — 生產者透過將訊息追加寫入主題分割槽檔案來傳送訊息，消費者依次讀取這些檔案
- [圖 11-4](/v1_tw/ch11/#fig_ddia_1104) — 在資料庫中 X 首先被設定為 A，然後被設定為 B，而在搜尋索引處，寫入以相反的順序到達
- [圖 11-5](/v1_tw/ch11/#fig_ddia_1105) — 將資料按順序寫入一個資料庫，然後按照相同的順序將這些更改應用到其他系統
- [圖 11-6](/v1_tw/ch11/#fig_ddia_1106) — 應用當前狀態與事件流之間的關係
- [圖 11-7](/v1_tw/ch11/#fig_ddia_1107) — 按處理時間分窗，會因為處理速率的變動引入人為因素
- [圖 12-1](/v1_tw/ch12/#fig_ddia_1201) — 在搜尋索引中，寫（文件更新）遇上讀（查詢）
