mirror of
https://github.com/Vonng/ddia.git
synced 2026-06-21 00:47:05 +08:00
539 lines
No EOL
32 KiB
Markdown
539 lines
No EOL
32 KiB
Markdown
---
|
||
title: "目錄"
|
||
linkTitle: "目錄"
|
||
weight: 10
|
||
breadcrumbs: false
|
||
---
|
||
|
||
|
||
|
||

|
||
|
||
|
||
## [序言](/tw/preface)
|
||
- [本書的目標讀者](/tw/preface#本書的目標讀者)
|
||
- [本書涉及的領域](/tw/preface#本書涉及的領域)
|
||
- [本書綱要](/tw/preface#本書綱要)
|
||
- [參考文獻與延伸閱讀](/tw/preface#參考文獻與延伸閱讀)
|
||
- [O‘Reilly Safari](/tw/preface#oreilly-safari)
|
||
- [致謝](/tw/preface#致謝)
|
||
|
||
## [1. 資料系統架構中的權衡](/tw/ch1)
|
||
- [分析型與事務型系統](/tw/ch1#sec_introduction_analytics)
|
||
- [事務處理與分析的特徵](/tw/ch1#sec_introduction_oltp)
|
||
- [資料倉庫](/tw/ch1#sec_introduction_dwh)
|
||
- [從資料倉庫到資料湖](/tw/ch1#from-data-warehouse-to-data-lake)
|
||
- [超越資料湖](/tw/ch1#beyond-the-data-lake)
|
||
- [權威資料來源與派生資料](/tw/ch1#sec_introduction_derived)
|
||
- [雲服務與自託管](/tw/ch1#sec_introduction_cloud)
|
||
- [雲服務的利弊](/tw/ch1#sec_introduction_cloud_tradeoffs)
|
||
- [雲原生系統架構](/tw/ch1#sec_introduction_cloud_native)
|
||
- [雲服務的分層](/tw/ch1#layering-of-cloud-services)
|
||
- [儲存與計算的分離](/tw/ch1#sec_introduction_storage_compute)
|
||
- [雲時代的運維](/tw/ch1#sec_introduction_operations)
|
||
- [分散式與單節點系統](/tw/ch1#sec_introduction_distributed)
|
||
- [分散式系統的問題](/tw/ch1#sec_introduction_dist_sys_problems)
|
||
- [微服務與 Serverless](/tw/ch1#sec_introduction_microservices)
|
||
- [雲計算與超級計算](/tw/ch1#id17)
|
||
- [資料系統、法律與社會](/tw/ch1#sec_introduction_compliance)
|
||
- [總結](/tw/ch1#summary)
|
||
- [參考](/tw/ch1#參考)
|
||
|
||
## [2. 定義非功能性需求](/tw/ch2)
|
||
- [案例研究:社交網路首頁時間線](/tw/ch2#sec_introduction_twitter)
|
||
- [表示使用者、帖子與關注關係](/tw/ch2#id20)
|
||
- [時間線的物化與更新](/tw/ch2#sec_introduction_materializing)
|
||
- [描述效能](/tw/ch2#sec_introduction_percentiles)
|
||
- [延遲與響應時間](/tw/ch2#id23)
|
||
- [平均值、中位數與百分位數](/tw/ch2#id24)
|
||
- [響應時間指標的應用](/tw/ch2#sec_introduction_slo_sla)
|
||
- [可靠性與容錯](/tw/ch2#sec_introduction_reliability)
|
||
- [容錯](/tw/ch2#id27)
|
||
- [硬體與軟體故障](/tw/ch2#sec_introduction_hardware_faults)
|
||
- [透過冗餘容忍硬體故障](/tw/ch2#tolerating-hardware-faults-through-redundancy)
|
||
- [軟體故障](/tw/ch2#software-faults)
|
||
- [人類與可靠性](/tw/ch2#id31)
|
||
- [可伸縮性](/tw/ch2#sec_introduction_scalability)
|
||
- [描述負載](/tw/ch2#id33)
|
||
- [共享記憶體、共享磁碟與無共享架構](/tw/ch2#sec_introduction_shared_nothing)
|
||
- [可伸縮性原則](/tw/ch2#id35)
|
||
- [可運維性](/tw/ch2#sec_introduction_maintainability)
|
||
- [可運維性:讓運維更輕鬆](/tw/ch2#id37)
|
||
- [簡單性:管理複雜度](/tw/ch2#id38)
|
||
- [可演化性:讓變化更容易](/tw/ch2#sec_introduction_evolvability)
|
||
- [總結](/tw/ch2#summary)
|
||
- [參考](/tw/ch2#參考)
|
||
|
||
## [3. 資料模型與查詢語言](/tw/ch3)
|
||
- [關係模型與文件模型](/tw/ch3#sec_datamodels_history)
|
||
- [物件關係不匹配](/tw/ch3#sec_datamodels_document)
|
||
- [物件關係對映(ORM)](/tw/ch3#object-relational-mapping-orm)
|
||
- [用於一對多關係的文件資料模型](/tw/ch3#the-document-data-model-for-one-to-many-relationships)
|
||
- [規範化、反規範化與連線](/tw/ch3#sec_datamodels_normalization)
|
||
- [規範化的權衡](/tw/ch3#trade-offs-of-normalization)
|
||
- [社交網路案例研究中的反規範化](/tw/ch3#denormalization-in-the-social-networking-case-study)
|
||
- [多對一與多對多關係](/tw/ch3#sec_datamodels_many_to_many)
|
||
- [星型與雪花型:分析模式](/tw/ch3#sec_datamodels_analytics)
|
||
- [何時使用哪種模型](/tw/ch3#sec_datamodels_document_summary)
|
||
- [文件模型中的模式靈活性](/tw/ch3#sec_datamodels_schema_flexibility)
|
||
- [讀寫的資料區域性](/tw/ch3#sec_datamodels_document_locality)
|
||
- [文件的查詢語言](/tw/ch3#query-languages-for-documents)
|
||
- [文件和關係資料庫的融合](/tw/ch3#convergence-of-document-and-relational-databases)
|
||
- [圖資料模型](/tw/ch3#sec_datamodels_graph)
|
||
- [屬性圖](/tw/ch3#id56)
|
||
- [Cypher 查詢語言](/tw/ch3#id57)
|
||
- [SQL 中的圖查詢](/tw/ch3#id58)
|
||
- [三元組儲存與 SPARQL](/tw/ch3#id59)
|
||
- [RDF 資料模型](/tw/ch3#the-rdf-data-model)
|
||
- [SPARQL 查詢語言](/tw/ch3#the-sparql-query-language)
|
||
- [Datalog:遞迴關係查詢](/tw/ch3#id62)
|
||
- [GraphQL](/tw/ch3#id63)
|
||
- [事件溯源與 CQRS](/tw/ch3#sec_datamodels_events)
|
||
- [資料框、矩陣與陣列](/tw/ch3#sec_datamodels_dataframes)
|
||
- [總結](/tw/ch3#summary)
|
||
- [參考](/tw/ch3#參考)
|
||
|
||
## [4. 儲存與檢索](/tw/ch4)
|
||
- [OLTP 系統的儲存與索引](/tw/ch4#sec_storage_oltp)
|
||
- [日誌結構儲存](/tw/ch4#sec_storage_log_structured)
|
||
- [SSTable 檔案格式](/tw/ch4#the-sstable-file-format)
|
||
- [構建和合並 SSTable](/tw/ch4#constructing-and-merging-sstables)
|
||
- [布隆過濾器](/tw/ch4#bloom-filters)
|
||
- [壓實策略](/tw/ch4#sec_storage_lsm_compaction)
|
||
- [B 樹](/tw/ch4#sec_storage_b_trees)
|
||
- [使 B 樹可靠](/tw/ch4#sec_storage_btree_wal)
|
||
- [B 樹變體](/tw/ch4#b-tree-variants)
|
||
- [比較 B 樹與 LSM 樹](/tw/ch4#sec_storage_btree_lsm_comparison)
|
||
- [讀取效能](/tw/ch4#read-performance)
|
||
- [順序與隨機寫入](/tw/ch4#sidebar_sequential)
|
||
- [寫放大](/tw/ch4#write-amplification)
|
||
- [磁碟空間使用](/tw/ch4#disk-space-usage)
|
||
- [多列索引與二級索引](/tw/ch4#sec_storage_index_multicolumn)
|
||
- [在索引中儲存值](/tw/ch4#sec_storage_index_heap)
|
||
- [全記憶體儲存](/tw/ch4#sec_storage_inmemory)
|
||
- [分析型資料儲存](/tw/ch4#sec_storage_analytics)
|
||
- [雲資料倉庫](/tw/ch4#sec_cloud_data_warehouses)
|
||
- [列式儲存](/tw/ch4#sec_storage_column)
|
||
- [列壓縮](/tw/ch4#sec_storage_column_compression)
|
||
- [列儲存中的排序順序](/tw/ch4#sort-order-in-column-storage)
|
||
- [寫入列式儲存](/tw/ch4#writing-to-column-oriented-storage)
|
||
- [查詢執行:編譯與向量化](/tw/ch4#sec_storage_vectorized)
|
||
- [物化檢視與多維資料集](/tw/ch4#sec_storage_materialized_views)
|
||
- [多維索引與全文索引](/tw/ch4#sec_storage_multidimensional)
|
||
- [全文檢索](/tw/ch4#sec_storage_full_text)
|
||
- [向量嵌入](/tw/ch4#id92)
|
||
- [總結](/tw/ch4#summary)
|
||
- [參考](/tw/ch4#參考)
|
||
|
||
## [5. 編碼與演化](/tw/ch5)
|
||
- [編碼資料的格式](/tw/ch5#sec_encoding_formats)
|
||
- [特定語言的格式](/tw/ch5#id96)
|
||
- [JSON、XML 及其二進位制變體](/tw/ch5#sec_encoding_json)
|
||
- [JSON 模式](/tw/ch5#json-schema)
|
||
- [二進位制編碼](/tw/ch5#binary-encoding)
|
||
- [Protocol Buffers](/tw/ch5#sec_encoding_protobuf)
|
||
- [欄位標籤與模式演化](/tw/ch5#field-tags-and-schema-evolution)
|
||
- [Avro](/tw/ch5#sec_encoding_avro)
|
||
- [寫入者模式與讀取者模式](/tw/ch5#the-writers-schema-and-the-readers-schema)
|
||
- [模式演化規則](/tw/ch5#schema-evolution-rules)
|
||
- [但什麼是寫入者模式?](/tw/ch5#but-what-is-the-writers-schema)
|
||
- [動態生成的模式](/tw/ch5#dynamically-generated-schemas)
|
||
- [模式的優點](/tw/ch5#sec_encoding_schemas)
|
||
- [資料流的模式](/tw/ch5#sec_encoding_dataflow)
|
||
- [流經資料庫的資料流](/tw/ch5#sec_encoding_dataflow_db)
|
||
- [不同時間寫入的不同值](/tw/ch5#different-values-written-at-different-times)
|
||
- [歸檔儲存](/tw/ch5#archival-storage)
|
||
- [流經服務的資料流:REST 與 RPC](/tw/ch5#sec_encoding_dataflow_rpc)
|
||
- [Web 服務](/tw/ch5#sec_web_services)
|
||
- [遠端過程呼叫(RPC)的問題](/tw/ch5#sec_problems_with_rpc)
|
||
- [負載均衡器、服務發現和服務網格](/tw/ch5#sec_encoding_service_discovery)
|
||
- [RPC 的資料編碼與演化](/tw/ch5#data-encoding-and-evolution-for-rpc)
|
||
- [持久化執行與工作流](/tw/ch5#sec_encoding_dataflow_workflows)
|
||
- [持久化執行](/tw/ch5#durable-execution)
|
||
- [事件驅動的架構](/tw/ch5#sec_encoding_dataflow_msg)
|
||
- [訊息代理](/tw/ch5#message-brokers)
|
||
- [分散式 actor 框架](/tw/ch5#distributed-actor-frameworks)
|
||
- [總結](/tw/ch5#summary)
|
||
- [參考](/tw/ch5#參考)
|
||
|
||
## [6. 複製](/tw/ch6)
|
||
- [單主複製](/tw/ch6#sec_replication_leader)
|
||
- [同步複製與非同步複製](/tw/ch6#sec_replication_sync_async)
|
||
- [設定新的副本](/tw/ch6#sec_replication_new_replica)
|
||
- [處理節點故障](/tw/ch6#sec_replication_failover)
|
||
- [從節點故障:追趕恢復](/tw/ch6#follower-failure-catch-up-recovery)
|
||
- [領導者故障:故障轉移](/tw/ch6#leader-failure-failover)
|
||
- [複製日誌的實現](/tw/ch6#sec_replication_implementation)
|
||
- [基於語句的複製](/tw/ch6#statement-based-replication)
|
||
- [預寫日誌(WAL)傳輸](/tw/ch6#write-ahead-log-wal-shipping)
|
||
- [邏輯(基於行)日誌複製](/tw/ch6#logical-row-based-log-replication)
|
||
- [複製延遲的問題](/tw/ch6#sec_replication_lag)
|
||
- [讀己之寫](/tw/ch6#sec_replication_ryw)
|
||
- [單調讀](/tw/ch6#sec_replication_monotonic_reads)
|
||
- [一致字首讀](/tw/ch6#sec_replication_consistent_prefix)
|
||
- [複製延遲的解決方案](/tw/ch6#id131)
|
||
- [多主複製](/tw/ch6#sec_replication_multi_leader)
|
||
- [跨地域執行](/tw/ch6#sec_replication_multi_dc)
|
||
- [多主複製拓撲](/tw/ch6#sec_replication_topologies)
|
||
- [不同拓撲的問題](/tw/ch6#problems-with-different-topologies)
|
||
- [同步引擎與本地優先軟體](/tw/ch6#sec_replication_offline_clients)
|
||
- [即時協作、離線優先和本地優先應用](/tw/ch6#real-time-collaboration-offline-first-and-local-first-apps)
|
||
- [同步引擎的利弊](/tw/ch6#pros-and-cons-of-sync-engines)
|
||
- [處理寫入衝突](/tw/ch6#sec_replication_write_conflicts)
|
||
- [衝突避免](/tw/ch6#conflict-avoidance)
|
||
- [最後寫入者勝(丟棄併發寫入)](/tw/ch6#sec_replication_lww)
|
||
- [手動衝突解決](/tw/ch6#manual-conflict-resolution)
|
||
- [自動衝突解決](/tw/ch6#automatic-conflict-resolution)
|
||
- [CRDT 與操作變換](/tw/ch6#sec_replication_crdts)
|
||
- [什麼是衝突?](/tw/ch6#what-is-a-conflict)
|
||
- [無主複製](/tw/ch6#sec_replication_leaderless)
|
||
- [當節點故障時寫入資料庫](/tw/ch6#id287)
|
||
- [追趕錯過的寫入](/tw/ch6#sec_replication_read_repair)
|
||
- [讀寫仲裁](/tw/ch6#sec_replication_quorum_condition)
|
||
- [仲裁一致性的侷限](/tw/ch6#sec_replication_quorum_limitations)
|
||
- [監控陳舊性](/tw/ch6#monitoring-staleness)
|
||
- [單主與無主複製的效能](/tw/ch6#sec_replication_leaderless_perf)
|
||
- [多地區操作](/tw/ch6#multi-region-operation)
|
||
- [檢測併發寫入](/tw/ch6#sec_replication_concurrent)
|
||
- ["先發生"關係與併發](/tw/ch6#sec_replication_happens_before)
|
||
- [捕獲先發生關係](/tw/ch6#capturing-the-happens-before-relationship)
|
||
- [版本向量](/tw/ch6#version-vectors)
|
||
- [總結](/tw/ch6#summary)
|
||
- [參考](/tw/ch6#參考)
|
||
|
||
## [7. 分片](/tw/ch7)
|
||
- [分片的利與弊](/tw/ch7#sec_sharding_reasons)
|
||
- [面向多租戶的分片](/tw/ch7#sec_sharding_multitenancy)
|
||
- [鍵值資料的分片](/tw/ch7#sec_sharding_key_value)
|
||
- [按鍵的範圍分片](/tw/ch7#sec_sharding_key_range)
|
||
- [重新平衡鍵範圍分片資料](/tw/ch7#rebalancing-key-range-sharded-data)
|
||
- [按鍵的雜湊分片](/tw/ch7#sec_sharding_hash)
|
||
- [雜湊取模節點數](/tw/ch7#hash-modulo-number-of-nodes)
|
||
- [固定數量的分片](/tw/ch7#fixed-number-of-shards)
|
||
- [按雜湊範圍分片](/tw/ch7#sharding-by-hash-range)
|
||
- [一致性雜湊](/tw/ch7#sec_sharding_consistent_hashing)
|
||
- [傾斜的工作負載與緩解熱點](/tw/ch7#sec_sharding_skew)
|
||
- [運維:自動/手動再均衡](/tw/ch7#sec_sharding_operations)
|
||
- [請求路由](/tw/ch7#sec_sharding_routing)
|
||
- [分片與二級索引](/tw/ch7#sec_sharding_secondary_indexes)
|
||
- [本地二級索引](/tw/ch7#id166)
|
||
- [全域性二級索引](/tw/ch7#id167)
|
||
- [總結](/tw/ch7#summary)
|
||
- [References](/tw/ch7#references)
|
||
|
||
## [8. 事務](/tw/ch8)
|
||
- [事務到底是什麼?](/tw/ch8#sec_transactions_overview)
|
||
- [ACID 的含義](/tw/ch8#sec_transactions_acid)
|
||
- [原子性](/tw/ch8#sec_transactions_acid_atomicity)
|
||
- [一致性](/tw/ch8#sec_transactions_acid_consistency)
|
||
- [隔離性](/tw/ch8#sec_transactions_acid_isolation)
|
||
- [永續性](/tw/ch8#durability)
|
||
- [單物件與多物件操作](/tw/ch8#sec_transactions_multi_object)
|
||
- [單物件寫入](/tw/ch8#sec_transactions_single_object)
|
||
- [多物件事務的需求](/tw/ch8#sec_transactions_need)
|
||
- [處理錯誤和中止](/tw/ch8#handling-errors-and-aborts)
|
||
- [弱隔離級別](/tw/ch8#sec_transactions_isolation_levels)
|
||
- [讀已提交](/tw/ch8#sec_transactions_read_committed)
|
||
- [沒有髒讀](/tw/ch8#no-dirty-reads)
|
||
- [沒有髒寫](/tw/ch8#sec_transactions_dirty_write)
|
||
- [實現讀已提交](/tw/ch8#sec_transactions_read_committed_impl)
|
||
- [快照隔離與可重複讀](/tw/ch8#sec_transactions_snapshot_isolation)
|
||
- [多版本併發控制(MVCC)](/tw/ch8#sec_transactions_snapshot_impl)
|
||
- [觀察一致快照的可見性規則](/tw/ch8#sec_transactions_mvcc_visibility)
|
||
- [索引與快照隔離](/tw/ch8#indexes-and-snapshot-isolation)
|
||
- [快照隔離、可重複讀和命名混淆](/tw/ch8#snapshot-isolation-repeatable-read-and-naming-confusion)
|
||
- [防止丟失更新](/tw/ch8#sec_transactions_lost_update)
|
||
- [原子寫操作](/tw/ch8#atomic-write-operations)
|
||
- [顯式鎖定](/tw/ch8#explicit-locking)
|
||
- [自動檢測丟失的更新](/tw/ch8#automatically-detecting-lost-updates)
|
||
- [條件寫入(比較並設定)](/tw/ch8#sec_transactions_compare_and_set)
|
||
- [衝突解決與複製](/tw/ch8#conflict-resolution-and-replication)
|
||
- [寫偏斜與幻讀](/tw/ch8#sec_transactions_write_skew)
|
||
- [描述寫偏斜](/tw/ch8#characterizing-write-skew)
|
||
- [更多寫偏斜的例子](/tw/ch8#more-examples-of-write-skew)
|
||
- [導致寫偏斜的幻讀](/tw/ch8#sec_transactions_phantom)
|
||
- [物化衝突](/tw/ch8#materializing-conflicts)
|
||
- [可序列化](/tw/ch8#sec_transactions_serializability)
|
||
- [實際序列執行](/tw/ch8#sec_transactions_serial)
|
||
- [將事務封裝在儲存過程中](/tw/ch8#encapsulating-transactions-in-stored-procedures)
|
||
- [儲存過程的利弊](/tw/ch8#sec_transactions_stored_proc_tradeoffs)
|
||
- [分片](/tw/ch8#sharding)
|
||
- [序列執行總結](/tw/ch8#summary-of-serial-execution)
|
||
- [兩階段鎖定(2PL)](/tw/ch8#sec_transactions_2pl)
|
||
- [兩階段鎖定的實現](/tw/ch8#implementation-of-two-phase-locking)
|
||
- [兩階段鎖定的效能](/tw/ch8#performance-of-two-phase-locking)
|
||
- [謂詞鎖](/tw/ch8#predicate-locks)
|
||
- [索引範圍鎖](/tw/ch8#sec_transactions_2pl_range)
|
||
- [可序列化快照隔離(SSI)](/tw/ch8#sec_transactions_ssi)
|
||
- [悲觀併發控制與樂觀併發控制](/tw/ch8#pessimistic-versus-optimistic-concurrency-control)
|
||
- [基於過時前提的決策](/tw/ch8#decisions-based-on-an-outdated-premise)
|
||
- [檢測陳舊的 MVCC 讀取](/tw/ch8#detecting-stale-mvcc-reads)
|
||
- [檢測影響先前讀取的寫入](/tw/ch8#sec_detecting_writes_affect_reads)
|
||
- [可序列化快照隔離的效能](/tw/ch8#performance-of-serializable-snapshot-isolation)
|
||
- [分散式事務](/tw/ch8#sec_transactions_distributed)
|
||
- [兩階段提交(2PC)](/tw/ch8#sec_transactions_2pc)
|
||
- [系統性的承諾](/tw/ch8#a-system-of-promises)
|
||
- [協調器故障](/tw/ch8#coordinator-failure)
|
||
- [三階段提交](/tw/ch8#three-phase-commit)
|
||
- [跨不同系統的分散式事務](/tw/ch8#sec_transactions_xa)
|
||
- [精確一次訊息處理](/tw/ch8#sec_transactions_exactly_once)
|
||
- [XA 事務](/tw/ch8#xa-transactions)
|
||
- [存疑時持有鎖](/tw/ch8#holding-locks-while-in-doubt)
|
||
- [從協調器故障中恢復](/tw/ch8#recovering-from-coordinator-failure)
|
||
- [XA 事務的問題](/tw/ch8#problems-with-xa-transactions)
|
||
- [資料庫內部的分散式事務](/tw/ch8#sec_transactions_internal)
|
||
- [再談精確一次訊息處理](/tw/ch8#exactly-once-message-processing-revisited)
|
||
- [總結](/tw/ch8#summary)
|
||
- [參考](/tw/ch8#參考)
|
||
|
||
## [9. 分散式系統的麻煩](/tw/ch9)
|
||
- [故障與部分失效](/tw/ch9#sec_distributed_partial_failure)
|
||
- [不可靠的網路](/tw/ch9#sec_distributed_networks)
|
||
- [TCP 的侷限性](/tw/ch9#sec_distributed_tcp)
|
||
- [網路故障的實踐](/tw/ch9#sec_distributed_network_faults)
|
||
- [檢測故障](/tw/ch9#id307)
|
||
- [超時和無界延遲](/tw/ch9#sec_distributed_queueing)
|
||
- [網路擁塞和排隊](/tw/ch9#network-congestion-and-queueing)
|
||
- [同步與非同步網路](/tw/ch9#sec_distributed_sync_networks)
|
||
- [我們不能簡單地使網路延遲可預測嗎?](/tw/ch9#can-we-not-simply-make-network-delays-predictable)
|
||
- [不可靠的時鐘](/tw/ch9#sec_distributed_clocks)
|
||
- [單調時鐘與日曆時鐘](/tw/ch9#sec_distributed_monotonic_timeofday)
|
||
- [日曆時鐘](/tw/ch9#time-of-day-clocks)
|
||
- [單調時鐘](/tw/ch9#monotonic-clocks)
|
||
- [時鐘同步和準確性](/tw/ch9#sec_distributed_clock_accuracy)
|
||
- [對同步時鐘的依賴](/tw/ch9#sec_distributed_clocks_relying)
|
||
- [用於事件排序的時間戳](/tw/ch9#sec_distributed_lww)
|
||
- [帶置信區間的時鐘讀數](/tw/ch9#clock-readings-with-a-confidence-interval)
|
||
- [用於全域性快照的同步時鐘](/tw/ch9#sec_distributed_spanner)
|
||
- [程序暫停](/tw/ch9#sec_distributed_clocks_pauses)
|
||
- [響應時間保證](/tw/ch9#sec_distributed_clocks_realtime)
|
||
- [限制垃圾回收的影響](/tw/ch9#sec_distributed_gc_impact)
|
||
- [知識、真相和謊言](/tw/ch9#sec_distributed_truth)
|
||
- [多數派原則](/tw/ch9#sec_distributed_majority)
|
||
- [分散式鎖和租約](/tw/ch9#sec_distributed_lock_fencing)
|
||
- [隔離殭屍程序和延遲請求](/tw/ch9#sec_distributed_fencing_tokens)
|
||
- [多副本隔離](/tw/ch9#fencing-with-multiple-replicas)
|
||
- [拜占庭故障](/tw/ch9#sec_distributed_byzantine)
|
||
- [弱形式的謊言](/tw/ch9#weak-forms-of-lying)
|
||
- [系統模型與現實](/tw/ch9#sec_distributed_system_model)
|
||
- [定義演算法的正確性](/tw/ch9#defining-the-correctness-of-an-algorithm)
|
||
- [安全性與活性](/tw/ch9#sec_distributed_safety_liveness)
|
||
- [將系統模型對映到現實世界](/tw/ch9#mapping-system-models-to-the-real-world)
|
||
- [形式化方法和隨機測試](/tw/ch9#sec_distributed_formal)
|
||
- [模型檢查與規範語言](/tw/ch9#model-checking-and-specification-languages)
|
||
- [故障注入](/tw/ch9#sec_fault_injection)
|
||
- [確定性模擬測試](/tw/ch9#deterministic-simulation-testing)
|
||
- [總結](/tw/ch9#summary)
|
||
- [參考](/tw/ch9#參考)
|
||
|
||
## [10. 一致性與共識](/tw/ch10)
|
||
- [線性一致性](/tw/ch10#sec_consistency_linearizability)
|
||
- [什麼使系統具有線性一致性?](/tw/ch10#sec_consistency_lin_definition)
|
||
- [依賴線性一致性](/tw/ch10#sec_consistency_linearizability_usage)
|
||
- [鎖定與領導者選舉](/tw/ch10#locking-and-leader-election)
|
||
- [約束與唯一性保證](/tw/ch10#sec_consistency_uniqueness)
|
||
- [跨通道時序依賴](/tw/ch10#cross-channel-timing-dependencies)
|
||
- [實現線性一致性系統](/tw/ch10#sec_consistency_implementing_linearizable)
|
||
- [線性一致性與仲裁](/tw/ch10#sec_consistency_quorum_linearizable)
|
||
- [線性一致性的代價](/tw/ch10#sec_linearizability_cost)
|
||
- [CAP 定理](/tw/ch10#the-cap-theorem)
|
||
- [線性一致性與網路延遲](/tw/ch10#linearizability-and-network-delays)
|
||
- [ID 生成器和邏輯時鐘](/tw/ch10#sec_consistency_logical)
|
||
- [邏輯時鐘](/tw/ch10#sec_consistency_timestamps)
|
||
- [Lamport 時間戳](/tw/ch10#lamport-timestamps)
|
||
- [混合邏輯時鐘](/tw/ch10#hybrid-logical-clocks)
|
||
- [Lamport/混合邏輯時鐘 vs. 向量時鐘](/tw/ch10#lamporthybrid-logical-clocks-vs-vector-clocks)
|
||
- [線性一致的 ID 生成器](/tw/ch10#sec_consistency_linearizable_id)
|
||
- [實現線性一致的 ID 生成器](/tw/ch10#implementing-a-linearizable-id-generator)
|
||
- [使用邏輯時鐘強制約束](/tw/ch10#enforcing-constraints-using-logical-clocks)
|
||
- [共識](/tw/ch10#sec_consistency_consensus)
|
||
- [共識的多面性](/tw/ch10#sec_consistency_faces)
|
||
- [單值共識](/tw/ch10#single-value-consensus)
|
||
- [比較並設定作為共識](/tw/ch10#compare-and-set-as-consensus)
|
||
- [共享日誌作為共識](/tw/ch10#sec_consistency_shared_logs)
|
||
- [獲取並增加作為共識](/tw/ch10#fetch-and-add-as-consensus)
|
||
- [原子提交作為共識](/tw/ch10#atomic-commitment-as-consensus)
|
||
- [共識的實踐](/tw/ch10#sec_consistency_total_order)
|
||
- [使用共享日誌](/tw/ch10#sec_consistency_smr)
|
||
- [從單主複製到共識](/tw/ch10#from-single-leader-replication-to-consensus)
|
||
- [共識的微妙之處](/tw/ch10#subtleties-of-consensus)
|
||
- [共識的利弊](/tw/ch10#pros-and-cons-of-consensus)
|
||
- [總結](/tw/ch10#summary)
|
||
- [參考文獻](/tw/ch10#參考文獻)
|
||
|
||
## [第十一章:批處理](/tw/ch11)
|
||
- [使用Unix工具的批處理](/tw/ch11#使用unix工具的批處理)
|
||
- [簡單日誌分析](/tw/ch11#簡單日誌分析)
|
||
- [命令鏈與自定義程式](/tw/ch11#命令鏈與自定義程式)
|
||
- [排序 VS 記憶體中的聚合](/tw/ch11#排序-vs-記憶體中的聚合)
|
||
- [Unix哲學](/tw/ch11#unix哲學)
|
||
- [統一的介面](/tw/ch11#統一的介面)
|
||
- [邏輯與佈線相分離](/tw/ch11#邏輯與佈線相分離)
|
||
- [透明度和實驗](/tw/ch11#透明度和實驗)
|
||
- [MapReduce和分散式檔案系統](/tw/ch11#mapreduce和分散式檔案系統)
|
||
- [MapReduce作業執行](/tw/ch11#mapreduce作業執行)
|
||
- [分散式執行MapReduce](/tw/ch11#分散式執行mapreduce)
|
||
- [MapReduce工作流](/tw/ch11#mapreduce工作流)
|
||
- [Reduce側連線與分組](/tw/ch11#reduce側連線與分組)
|
||
- [示例:使用者活動事件分析](/tw/ch11#示例使用者活動事件分析)
|
||
- [排序合併連線](/tw/ch11#排序合併連線)
|
||
- [把相關資料放在一起](/tw/ch11#把相關資料放在一起)
|
||
- [分組](/tw/ch11#分組)
|
||
- [處理偏斜](/tw/ch11#處理偏斜)
|
||
- [Map側連線](/tw/ch11#map側連線)
|
||
- [廣播雜湊連線](/tw/ch11#廣播雜湊連線)
|
||
- [分割槽雜湊連線](/tw/ch11#分割槽雜湊連線)
|
||
- [Map側合併連線](/tw/ch11#map側合併連線)
|
||
- [MapReduce工作流與Map側連線](/tw/ch11#mapreduce工作流與map側連線)
|
||
- [批處理工作流的輸出](/tw/ch11#批處理工作流的輸出)
|
||
- [建立搜尋索引](/tw/ch11#建立搜尋索引)
|
||
- [鍵值儲存作為批處理輸出](/tw/ch11#鍵值儲存作為批處理輸出)
|
||
- [批處理輸出的哲學](/tw/ch11#批處理輸出的哲學)
|
||
- [Hadoop與分散式資料庫的對比](/tw/ch11#hadoop與分散式資料庫的對比)
|
||
- [儲存多樣性](/tw/ch11#儲存多樣性)
|
||
- [處理模型的多樣性](/tw/ch11#處理模型的多樣性)
|
||
- [針對頻繁故障設計](/tw/ch11#針對頻繁故障設計)
|
||
- [MapReduce之後](/tw/ch11#mapreduce之後)
|
||
- [物化中間狀態](/tw/ch11#物化中間狀態)
|
||
- [資料流引擎](/tw/ch11#資料流引擎)
|
||
- [容錯](/tw/ch11#容錯)
|
||
- [關於物化的討論](/tw/ch11#關於物化的討論)
|
||
- [圖與迭代處理](/tw/ch11#圖與迭代處理)
|
||
- [Pregel處理模型](/tw/ch11#pregel處理模型)
|
||
- [容錯](/tw/ch11#容錯)
|
||
- [並行執行](/tw/ch11#並行執行)
|
||
- [高階API和語言](/tw/ch11#高階api和語言)
|
||
- [向宣告式查詢語言的轉變](/tw/ch11#向宣告式查詢語言的轉變)
|
||
- [專業化的不同領域](/tw/ch11#專業化的不同領域)
|
||
- [本章小結](/tw/ch11#本章小結)
|
||
- [參考文獻](/tw/ch11#參考文獻)
|
||
|
||
## [第十二章:流處理](/tw/ch12)
|
||
- [傳遞事件流](/tw/ch12#傳遞事件流)
|
||
- [訊息傳遞系統](/tw/ch12#訊息傳遞系統)
|
||
- [直接從生產者傳遞給消費者](/tw/ch12#直接從生產者傳遞給消費者)
|
||
- [訊息代理](/tw/ch12#訊息代理)
|
||
- [訊息代理與資料庫的對比](/tw/ch12#訊息代理與資料庫的對比)
|
||
- [多個消費者](/tw/ch12#多個消費者)
|
||
- [確認與重新傳遞](/tw/ch12#確認與重新傳遞)
|
||
- [分割槽日誌](/tw/ch12#分割槽日誌)
|
||
- [使用日誌進行訊息儲存](/tw/ch12#使用日誌進行訊息儲存)
|
||
- [日誌與傳統的訊息傳遞相比](/tw/ch12#日誌與傳統的訊息傳遞相比)
|
||
- [消費者偏移量](/tw/ch12#消費者偏移量)
|
||
- [磁碟空間使用](/tw/ch12#磁碟空間使用)
|
||
- [當消費者跟不上生產者時](/tw/ch12#當消費者跟不上生產者時)
|
||
- [重播舊訊息](/tw/ch12#重播舊訊息)
|
||
- [資料庫與流](/tw/ch12#資料庫與流)
|
||
- [保持系統同步](/tw/ch12#保持系統同步)
|
||
- [變更資料捕獲](/tw/ch12#變更資料捕獲)
|
||
- [變更資料捕獲的實現](/tw/ch12#變更資料捕獲的實現)
|
||
- [初始快照](/tw/ch12#初始快照)
|
||
- [日誌壓縮](/tw/ch12#日誌壓縮)
|
||
- [變更流的API支援](/tw/ch12#變更流的api支援)
|
||
- [事件溯源](/tw/ch12#事件溯源)
|
||
- [從事件日誌中派生出當前狀態](/tw/ch12#從事件日誌中派生出當前狀態)
|
||
- [命令和事件](/tw/ch12#命令和事件)
|
||
- [狀態、流和不變性](/tw/ch12#狀態流和不變性)
|
||
- [不可變事件的優點](/tw/ch12#不可變事件的優點)
|
||
- [從同一事件日誌中派生多個檢視](/tw/ch12#從同一事件日誌中派生多個檢視)
|
||
- [併發控制](/tw/ch12#併發控制)
|
||
- [不變性的侷限性](/tw/ch12#不變性的侷限性)
|
||
- [流處理](/tw/ch12#流處理)
|
||
- [流處理的應用](/tw/ch12#流處理的應用)
|
||
- [複合事件處理](/tw/ch12#複合事件處理)
|
||
- [流分析](/tw/ch12#流分析)
|
||
- [維護物化檢視](/tw/ch12#維護物化檢視)
|
||
- [在流上搜索](/tw/ch12#在流上搜索)
|
||
- [訊息傳遞和RPC](/tw/ch12#訊息傳遞和rpc)
|
||
- [時間推理](/tw/ch12#時間推理)
|
||
- [事件時間與處理時間](/tw/ch12#事件時間與處理時間)
|
||
- [知道什麼時候準備好了](/tw/ch12#知道什麼時候準備好了)
|
||
- [你用的是誰的時鐘?](/tw/ch12#你用的是誰的時鐘)
|
||
- [視窗的型別](/tw/ch12#視窗的型別)
|
||
- [流連線](/tw/ch12#流連線)
|
||
- [流流連線(視窗連線)](/tw/ch12#流流連線視窗連線)
|
||
- [流表連線(流擴充)](/tw/ch12#流表連線流擴充)
|
||
- [表表連線(維護物化檢視)](/tw/ch12#表表連線維護物化檢視)
|
||
- [連線的時間依賴性](/tw/ch12#連線的時間依賴性)
|
||
- [容錯](/tw/ch12#容錯)
|
||
- [微批次與存檔點](/tw/ch12#微批次與存檔點)
|
||
- [原子提交再現](/tw/ch12#原子提交再現)
|
||
- [冪等性](/tw/ch12#冪等性)
|
||
- [失敗後重建狀態](/tw/ch12#失敗後重建狀態)
|
||
- [本章小結](/tw/ch12#本章小結)
|
||
- [參考文獻](/tw/ch12#參考文獻)
|
||
|
||
## [第十三章:資料系統的未來](/ch13)
|
||
- [資料整合](/ch13#資料整合)
|
||
- [組合使用派生資料的工具](/ch13#組合使用派生資料的工具)
|
||
- [理解資料流](/ch13#理解資料流)
|
||
- [派生資料與分散式事務](/ch13#派生資料與分散式事務)
|
||
- [全序的限制](/ch13#全序的限制)
|
||
- [排序事件以捕獲因果關係](/ch13#排序事件以捕獲因果關係)
|
||
- [批處理與流處理](/ch13#批處理與流處理)
|
||
- [維護衍生狀態](/ch13#維護衍生狀態)
|
||
- [應用演化後重新處理資料](/ch13#應用演化後重新處理資料)
|
||
- [Lambda架構](/ch13#lambda架構)
|
||
- [統一批處理和流處理](/ch13#統一批處理和流處理)
|
||
- [分拆資料庫](/ch13#分拆資料庫)
|
||
- [組合使用資料儲存技術](/ch13#組合使用資料儲存技術)
|
||
- [建立索引](/ch13#建立索引)
|
||
- [一切的元資料庫](/ch13#一切的元資料庫)
|
||
- [開展分拆工作](/ch13#開展分拆工作)
|
||
- [分拆系統vs整合系統](/ch13#分拆系統vs整合系統)
|
||
- [少了什麼?](/ch13#少了什麼)
|
||
- [圍繞資料流設計應用](/ch13#圍繞資料流設計應用)
|
||
- [應用程式碼作為衍生函式](/ch13#應用程式碼作為衍生函式)
|
||
- [應用程式碼和狀態的分離](/ch13#應用程式碼和狀態的分離)
|
||
- [資料流:應用程式碼與狀態變化的互動](/ch13#資料流應用程式碼與狀態變化的互動)
|
||
- [流處理器和服務](/ch13#流處理器和服務)
|
||
- [觀察派生資料狀態](/ch13#觀察派生資料狀態)
|
||
- [物化檢視和快取](/ch13#物化檢視和快取)
|
||
- [有狀態、可離線的客戶端](/ch13#有狀態可離線的客戶端)
|
||
- [將狀態變更推送給客戶端](/ch13#將狀態變更推送給客戶端)
|
||
- [端到端的事件流](/ch13#端到端的事件流)
|
||
- [讀也是事件](/ch13#讀也是事件)
|
||
- [多分割槽資料處理](/ch13#多分割槽資料處理)
|
||
- [將事情做正確](/ch13#將事情做正確)
|
||
- [資料庫的端到端原則](/ch13#資料庫的端到端原則)
|
||
- [正好執行一次操作](/ch13#正好執行一次操作)
|
||
- [抑制重複](/ch13#抑制重複)
|
||
- [操作識別符號](/ch13#操作識別符號)
|
||
- [端到端原則](/ch13#端到端原則)
|
||
- [在資料系統中應用端到端思考](/ch13#在資料系統中應用端到端思考)
|
||
- [強制約束](/ch13#強制約束)
|
||
- [唯一性約束需要達成共識](/ch13#唯一性約束需要達成共識)
|
||
- [基於日誌訊息傳遞中的唯一性](/ch13#基於日誌訊息傳遞中的唯一性)
|
||
- [多分割槽請求處理](/ch13#多分割槽請求處理)
|
||
- [及時性與完整性](/ch13#及時性與完整性)
|
||
- [資料流系統的正確性](/ch13#資料流系統的正確性)
|
||
- [寬鬆地解釋約束](/ch13#寬鬆地解釋約束)
|
||
- [無協調資料系統](/ch13#無協調資料系統)
|
||
- [信任但驗證](/ch13#信任但驗證)
|
||
- [維護完整性,儘管軟體有Bug](/ch13#維護完整性儘管軟體有bug)
|
||
- [不要盲目信任承諾](/ch13#不要盲目信任承諾)
|
||
- [驗證的文化](/ch13#驗證的文化)
|
||
- [為可審計性而設計](/ch13#為可審計性而設計)
|
||
- [端到端原則重現](/ch13#端到端原則重現)
|
||
- [用於可審計資料系統的工具](/ch13#用於可審計資料系統的工具)
|
||
- [做正確的事情](/ch13#做正確的事情)
|
||
- [預測性分析](/ch13#預測性分析)
|
||
- [偏見與歧視](/ch13#偏見與歧視)
|
||
- [責任與問責](/ch13#責任與問責)
|
||
- [反饋迴圈](/ch13#反饋迴圈)
|
||
- [隱私和追蹤](/ch13#隱私和追蹤)
|
||
- [監視](/ch13#監視)
|
||
- [同意與選擇的自由](/ch13#同意與選擇的自由)
|
||
- [隱私與資料使用](/ch13#隱私與資料使用)
|
||
- [資料資產與權力](/ch13#資料資產與權力)
|
||
- [回顧工業革命](/ch13#回顧工業革命)
|
||
- [立法與自律](/ch13#立法與自律)
|
||
- [本章小結](/ch13#本章小結)
|
||
- [參考文獻](/ch13#參考文獻)
|
||
|
||
## [術語表](/tw/glossary)
|
||
|
||
## [後記](/tw/colophon)
|
||
- [關於作者](/tw/colophon#關於作者)
|
||
- [關於譯者](/tw/colophon#關於譯者)
|
||
- [後記](/tw/colophon#後記) |