mirror of
https://github.com/Vonng/ddia.git
synced 2026-06-22 01:17:02 +08:00
218 lines
9.5 KiB
Markdown
218 lines
9.5 KiB
Markdown
---
|
||
title: "目录"
|
||
linkTitle: "目录"
|
||
weight: 10
|
||
breadcrumbs: false
|
||
---
|
||
|
||
|
||
|
||

|
||
|
||
|
||
## [序言](/preface)
|
||
|
||
## [1. 数据系统架构中的权衡](/ch1)
|
||
|
||
- [分析型与事务型系统](/ch1#sec_introduction_analytics)
|
||
- [事务处理与分析的特征](/ch1#sec_introduction_oltp)
|
||
- [数据仓库](/ch1#sec_introduction_dwh)
|
||
- [权威数据源与派生数据](/ch1#sec_introduction_derived)
|
||
- [云服务与自托管](/ch1#sec_introduction_cloud)
|
||
- [云服务的利弊](/ch1#sec_introduction_cloud_tradeoffs)
|
||
- [云原生系统架构](/ch1#sec_introduction_cloud_native)
|
||
- [云时代的运维](/ch1#sec_introduction_operations)
|
||
- [分布式与单节点系统](/ch1#sec_introduction_distributed)
|
||
- [分布式系统的问题](/ch1#sec_introduction_dist_sys_problems)
|
||
- [微服务与 Serverless](/ch1#sec_introduction_microservices)
|
||
- [云计算与超级计算](/ch1#id17)
|
||
- [数据系统、法律与社会](/ch1#sec_introduction_compliance)
|
||
- [总结](/ch1#summary)
|
||
|
||
|
||
## [2. 定义非功能性需求](/ch2)
|
||
|
||
- [案例研究:社交网络首页时间线](/ch2#sec_introduction_twitter)
|
||
- [表示用户、帖子与关注关系](/ch2#id20)
|
||
- [时间线的物化与更新](/ch2#sec_introduction_materializing)
|
||
- [描述性能](/ch2#sec_introduction_percentiles)
|
||
- [延迟与响应时间](/ch2#id23)
|
||
- [平均值、中位数与百分位数](/ch2#id24)
|
||
- [响应时间指标的应用](/ch2#sec_introduction_slo_sla)
|
||
- [可靠性与容错](/ch2#sec_introduction_reliability)
|
||
- [容错](/ch2#id27)
|
||
- [硬件与软件故障](/ch2#sec_introduction_hardware_faults)
|
||
- [人类与可靠性](/ch2#id31)
|
||
- [可伸缩性](/ch2#sec_introduction_scalability)
|
||
- [描述负载](/ch2#id33)
|
||
- [共享内存、共享磁盘与无共享架构](/ch2#sec_introduction_shared_nothing)
|
||
- [可伸缩性原则](/ch2#id35)
|
||
- [可维护性](/ch2#sec_introduction_maintainability)
|
||
- [可操作性:让运维更轻松](/ch2#id37)
|
||
- [简单性:管理复杂度](/ch2#id38)
|
||
- [可演化性:让变化更容易](/ch2#sec_introduction_evolvability)
|
||
- [总结](/ch2#summary)
|
||
|
||
|
||
## [3. 数据模型与查询语言](/ch3)
|
||
|
||
- [关系模型与文档模型](/ch3#sec_datamodels_history)
|
||
- [对象关系不匹配](/ch3#sec_datamodels_document)
|
||
- [规范化、反规范化与连接](/ch3#sec_datamodels_normalization)
|
||
- [多对一与多对多关系](/ch3#sec_datamodels_many_to_many)
|
||
- [星型与雪花型:分析模式](/ch3#sec_datamodels_analytics)
|
||
- [何时使用哪种模型](/ch3#sec_datamodels_document_summary)
|
||
- [图数据模型](/ch3#sec_datamodels_graph)
|
||
- [属性图](/ch3#id56)
|
||
- [Cypher 查询语言](/ch3#id57)
|
||
- [SQL 中的图查询](/ch3#id58)
|
||
- [三元组存储与 SPARQL](/ch3#id59)
|
||
- [Datalog:递归关系查询](/ch3#id62)
|
||
- [GraphQL](/ch3#id63)
|
||
- [事件溯源与 CQRS](/ch3#sec_datamodels_events)
|
||
- [数据框、矩阵与数组](/ch3#sec_datamodels_dataframes)
|
||
- [总结](/ch3#summary)
|
||
|
||
|
||
## [4. 存储与检索](/ch4)
|
||
|
||
- [OLTP 系统的存储与索引](/ch4#sec_storage_oltp)
|
||
- [日志结构存储](/ch4#sec_storage_log_structured)
|
||
- [B 树](/ch4#sec_storage_b_trees)
|
||
- [比较 B 树与 LSM 树](/ch4#sec_storage_btree_lsm_comparison)
|
||
- [多列索引与二级索引](/ch4#sec_storage_index_multicolumn)
|
||
- [全内存存储](/ch4#sec_storage_inmemory)
|
||
- [分析型数据存储](/ch4#sec_storage_analytics)
|
||
- [云数据仓库](/ch4#sec_cloud_data_warehouses)
|
||
- [列式存储](/ch4#sec_storage_column)
|
||
- [查询执行:编译与向量化](/ch4#sec_storage_vectorized)
|
||
- [物化视图与多维数据集](/ch4#sec_storage_materialized_views)
|
||
- [多维索引与全文索引](/ch4#sec_storage_multidimensional)
|
||
- [全文检索](/ch4#sec_storage_full_text)
|
||
- [向量嵌入](/ch4#id92)
|
||
- [总结](/ch4#summary)
|
||
|
||
|
||
## [5. 编码与演化](/ch5)
|
||
|
||
- [编码数据的格式](/ch5#sec_encoding_formats)
|
||
- [特定语言的格式](/ch5#id96)
|
||
- [JSON、XML 及其二进制变体](/ch5#sec_encoding_json)
|
||
- [Protocol Buffers](/ch5#sec_encoding_protobuf)
|
||
- [Avro](/ch5#sec_encoding_avro)
|
||
- [模式的优点](/ch5#sec_encoding_schemas)
|
||
- [数据流的模式](/ch5#sec_encoding_dataflow)
|
||
- [流经数据库的数据流](/ch5#sec_encoding_dataflow_db)
|
||
- [流经服务的数据流:REST 与 RPC](/ch5#sec_encoding_dataflow_rpc)
|
||
- [持久化执行与工作流](/ch5#sec_encoding_dataflow_workflows)
|
||
- [事件驱动的架构](/ch5#sec_encoding_dataflow_msg)
|
||
- [总结](/ch5#summary)
|
||
|
||
|
||
## [6. 复制](/ch6)
|
||
|
||
- [单主复制](/ch6#sec_replication_leader)
|
||
- [同步复制与异步复制](/ch6#sec_replication_sync_async)
|
||
- [设置新的副本](/ch6#sec_replication_new_replica)
|
||
- [处理节点故障](/ch6#sec_replication_failover)
|
||
- [复制日志的实现](/ch6#sec_replication_implementation)
|
||
- [复制延迟的问题](/ch6#sec_replication_lag)
|
||
- [读己之写](/ch6#sec_replication_ryw)
|
||
- [单调读](/ch6#sec_replication_monotonic_reads)
|
||
- [一致前缀读](/ch6#sec_replication_consistent_prefix)
|
||
- [复制延迟的解决方案](/ch6#id131)
|
||
- [多主复制](/ch6#sec_replication_multi_leader)
|
||
- [跨地域运行](/ch6#sec_replication_multi_dc)
|
||
- [同步引擎与本地优先软件](/ch6#sec_replication_offline_clients)
|
||
- [处理写入冲突](/ch6#sec_replication_write_conflicts)
|
||
- [CRDT 与操作变换](/ch6#sec_replication_crdts)
|
||
- [无主复制](/ch6#sec_replication_leaderless)
|
||
- [当节点故障时写入数据库](/ch6#id287)
|
||
- [仲裁一致性的局限](/ch6#sec_replication_quorum_limitations)
|
||
- [单主与无主复制的性能](/ch6#sec_replication_leaderless_perf)
|
||
- [检测并发写入](/ch6#sec_replication_concurrent)
|
||
- [总结](/ch6#summary)
|
||
|
||
|
||
## [7. 分片](/ch7)
|
||
|
||
- [分片的利与弊](/ch7#sec_sharding_reasons)
|
||
- [面向多租户的分片](/ch7#sec_sharding_multitenancy)
|
||
- [键值数据的分片](/ch7#sec_sharding_key_value)
|
||
- [按键的范围分片](/ch7#sec_sharding_key_range)
|
||
- [按键的哈希分片](/ch7#sec_sharding_hash)
|
||
- [倾斜的工作负载与缓解热点](/ch7#sec_sharding_skew)
|
||
- [运维:自动/手动再均衡](/ch7#sec_sharding_operations)
|
||
- [请求路由](/ch7#sec_sharding_routing)
|
||
- [分片与二级索引](/ch7#sec_sharding_secondary_indexes)
|
||
- [本地二级索引](/ch7#id166)
|
||
- [全局二级索引](/ch7#id167)
|
||
- [总结](/ch7#summary)
|
||
|
||
|
||
## [8. 事务](/ch8)
|
||
|
||
- [事务到底是什么?](/ch8#sec_transactions_overview)
|
||
- [ACID 的含义](/ch8#sec_transactions_acid)
|
||
- [单对象与多对象操作](/ch8#sec_transactions_multi_object)
|
||
- [弱隔离级别](/ch8#sec_transactions_isolation_levels)
|
||
- [读已提交](/ch8#sec_transactions_read_committed)
|
||
- [快照隔离与可重复读](/ch8#sec_transactions_snapshot_isolation)
|
||
- [防止丢失更新](/ch8#sec_transactions_lost_update)
|
||
- [写偏斜与幻读](/ch8#sec_transactions_write_skew)
|
||
- [可串行化](/ch8#sec_transactions_serializability)
|
||
- [实际串行执行](/ch8#sec_transactions_serial)
|
||
- [两阶段锁定(2PL)](/ch8#sec_transactions_2pl)
|
||
- [可串行化快照隔离(SSI)](/ch8#sec_transactions_ssi)
|
||
- [分布式事务](/ch8#sec_transactions_distributed)
|
||
- [两阶段提交(2PC)](/ch8#sec_transactions_2pc)
|
||
- [跨不同系统的分布式事务](/ch8#sec_transactions_xa)
|
||
- [数据库内部的分布式事务](/ch8#sec_transactions_internal)
|
||
- [总结](/ch8#summary)
|
||
|
||
|
||
## [9. 分布式系统的麻烦](/ch9)
|
||
|
||
- [故障与部分失效](/ch9#sec_distributed_partial_failure)
|
||
- [不可靠的网络](/ch9#sec_distributed_networks)
|
||
- [TCP 的局限性](/ch9#sec_distributed_tcp)
|
||
- [实践中的网络故障](/ch9#sec_distributed_network_faults)
|
||
- [故障检测](/ch9#id307)
|
||
- [超时与无界延迟](/ch9#sec_distributed_queueing)
|
||
- [同步网络与异步网络](/ch9#sec_distributed_sync_networks)
|
||
- [不可靠的时钟](/ch9#sec_distributed_clocks)
|
||
- [单调时钟与日历时钟](/ch9#sec_distributed_monotonic_timeofday)
|
||
- [时钟同步与准确性](/ch9#sec_distributed_clock_accuracy)
|
||
- [对同步时钟的依赖](/ch9#sec_distributed_clocks_relying)
|
||
- [进程暂停](/ch9#sec_distributed_clocks_pauses)
|
||
- [知识、真相与谎言](/ch9#sec_distributed_truth)
|
||
- [多数派原则](/ch9#sec_distributed_majority)
|
||
- [分布式锁与租约](/ch9#sec_distributed_lock_fencing)
|
||
- [拜占庭故障](/ch9#sec_distributed_byzantine)
|
||
- [系统模型与现实](/ch9#sec_distributed_system_model)
|
||
- [形式化方法与随机测试](/ch9#sec_distributed_formal)
|
||
- [总结](/ch9#summary)
|
||
|
||
|
||
## [10. 一致性与共识](/ch10)
|
||
|
||
- [线性一致性](/ch10#sec_consistency_linearizability)
|
||
- [什么使系统具有线性一致性?](/ch10#sec_consistency_lin_definition)
|
||
- [依赖线性一致性](/ch10#sec_consistency_linearizability_usage)
|
||
- [实现线性一致性系统](/ch10#sec_consistency_implementing_linearizable)
|
||
- [线性一致性的代价](/ch10#sec_linearizability_cost)
|
||
- [ID 生成器与逻辑时钟](/ch10#sec_consistency_logical)
|
||
- [逻辑时钟](/ch10#sec_consistency_timestamps)
|
||
- [线性一致的 ID 生成器](/ch10#sec_consistency_linearizable_id)
|
||
- [共识](/ch10#sec_consistency_consensus)
|
||
- [共识的多面性](/ch10#sec_consistency_faces)
|
||
- [共识的实践](/ch10#sec_consistency_total_order)
|
||
- [协调服务](/ch10#sec_consistency_coordination)
|
||
- [总结](/ch10#summary)
|
||
|
||
|
||
## [11. 批处理](/ch11)(未发布)
|
||
## [12. 流处理](/ch12)(未发布)
|
||
## [13. 做正确的事](/ch13)(未发布)
|
||
## [术语表](/glossary)
|
||
## [后记](/colophon)
|