本書第一部分聚焦於單台機器上資料系統的核心概念,為後續討論分散式系統奠定基礎。無論最終的架構規模多大,理解單一節點上的資料處理原理都是不可或缺的起點。

涵蓋主題#

Part I 由四個章節組成,從應用程式的設計目標一路深入到資料的儲存與編碼方式:

  • Chapter 1: Reliable, Scalable, and Maintainable Applications — 定義資料密集型應用程式追求的三大非功能性需求:可靠性、可擴展性與可維護性,並探討資料系統架構中常見的設計權衡。
  • Chapter 2: Data Models and Query Languages — 比較關聯式模型、文件模型與圖模型等不同資料模型的適用場景,以及對應的查詢語言如何影響應用程式的設計。
  • Chapter 3: Storage and Retrieval — 深入資料庫引擎的內部運作,理解 LSM-Tree 與 B-Tree 等索引結構如何決定讀寫效能特性。
  • Chapter 4: Encoding and Evolution — 探討資料序列化格式(JSON、Protobuf、Avro 等)的選擇,以及如何在系統演化過程中維持向前與向後相容性。

閱讀建議#

即使你已有資料庫使用經驗,仍建議依序閱讀本部分。Chapter 1 建立的術語框架將貫穿全書,而 Chapter 3 與 Chapter 4 的概念在 Part II 討論複製與分區時會被頻繁引用。

本部分的核心問題是:當資料量、複雜度或變更速度超出單一工具的能力時,我們該如何思考與組合不同的資料系統? 理解每種技術的內在權衡,是做出正確架構決策的前提。