--- title: "目录" linkTitle: "目录" weight: 10 breadcrumbs: false --- ![](/title.jpg) ## [序言](/preface) - [本书的目标读者](/preface#本书的目标读者) - [本书涉及的领域](/preface#本书涉及的领域) - [本书纲要](/preface#本书纲要) - [参考文献与延伸阅读](/preface#参考文献与延伸阅读) - [O‘Reilly Safari](/preface#oreilly-safari) - [致谢](/preface#致谢) ## [1. 数据系统架构中的权衡](/ch1) - [分析型与事务型系统](/ch1#sec_introduction_analytics) - [事务处理与分析的特征](/ch1#sec_introduction_oltp) - [数据仓库](/ch1#sec_introduction_dwh) - [从数据仓库到数据湖](/ch1#from-data-warehouse-to-data-lake) - [超越数据湖](/ch1#beyond-the-data-lake) - [权威数据源与派生数据](/ch1#sec_introduction_derived) - [云服务与自托管](/ch1#sec_introduction_cloud) - [云服务的利弊](/ch1#sec_introduction_cloud_tradeoffs) - [云原生系统架构](/ch1#sec_introduction_cloud_native) - [云服务的分层](/ch1#layering-of-cloud-services) - [存储与计算的分离](/ch1#sec_introduction_storage_compute) - [云时代的运维](/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) - [参考](/ch1#参考) ## [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#tolerating-hardware-faults-through-redundancy) - [软件故障](/ch2#software-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) - [参考](/ch2#参考) ## [3. 数据模型与查询语言](/ch3) - [关系模型与文档模型](/ch3#sec_datamodels_history) - [对象关系不匹配](/ch3#sec_datamodels_document) - [对象关系映射(ORM)](/ch3#object-relational-mapping-orm) - [用于一对多关系的文档数据模型](/ch3#the-document-data-model-for-one-to-many-relationships) - [规范化、反规范化与连接](/ch3#sec_datamodels_normalization) - [规范化的权衡](/ch3#trade-offs-of-normalization) - [社交网络案例研究中的反规范化](/ch3#denormalization-in-the-social-networking-case-study) - [多对一与多对多关系](/ch3#sec_datamodels_many_to_many) - [星型与雪花型:分析模式](/ch3#sec_datamodels_analytics) - [何时使用哪种模型](/ch3#sec_datamodels_document_summary) - [文档模型中的模式灵活性](/ch3#sec_datamodels_schema_flexibility) - [读写的数据局部性](/ch3#sec_datamodels_document_locality) - [文档的查询语言](/ch3#query-languages-for-documents) - [文档和关系数据库的融合](/ch3#convergence-of-document-and-relational-databases) - [图数据模型](/ch3#sec_datamodels_graph) - [属性图](/ch3#id56) - [Cypher 查询语言](/ch3#id57) - [SQL 中的图查询](/ch3#id58) - [三元组存储与 SPARQL](/ch3#id59) - [RDF 数据模型](/ch3#the-rdf-data-model) - [SPARQL 查询语言](/ch3#the-sparql-query-language) - [Datalog:递归关系查询](/ch3#id62) - [GraphQL](/ch3#id63) - [事件溯源与 CQRS](/ch3#sec_datamodels_events) - [数据框、矩阵与数组](/ch3#sec_datamodels_dataframes) - [总结](/ch3#summary) - [参考](/ch3#参考) ## [4. 存储与检索](/ch4) - [OLTP 系统的存储与索引](/ch4#sec_storage_oltp) - [日志结构存储](/ch4#sec_storage_log_structured) - [SSTable 文件格式](/ch4#the-sstable-file-format) - [构建和合并 SSTable](/ch4#constructing-and-merging-sstables) - [布隆过滤器](/ch4#bloom-filters) - [压实策略](/ch4#sec_storage_lsm_compaction) - [B 树](/ch4#sec_storage_b_trees) - [使 B 树可靠](/ch4#sec_storage_btree_wal) - [B 树变体](/ch4#b-tree-variants) - [比较 B 树与 LSM 树](/ch4#sec_storage_btree_lsm_comparison) - [读取性能](/ch4#read-performance) - [顺序与随机写入](/ch4#sidebar_sequential) - [写放大](/ch4#write-amplification) - [磁盘空间使用](/ch4#disk-space-usage) - [多列索引与二级索引](/ch4#sec_storage_index_multicolumn) - [在索引中存储值](/ch4#sec_storage_index_heap) - [全内存存储](/ch4#sec_storage_inmemory) - [分析型数据存储](/ch4#sec_storage_analytics) - [云数据仓库](/ch4#sec_cloud_data_warehouses) - [列式存储](/ch4#sec_storage_column) - [列压缩](/ch4#sec_storage_column_compression) - [列存储中的排序顺序](/ch4#sort-order-in-column-storage) - [写入列式存储](/ch4#writing-to-column-oriented-storage) - [查询执行:编译与向量化](/ch4#sec_storage_vectorized) - [物化视图与多维数据集](/ch4#sec_storage_materialized_views) - [多维索引与全文索引](/ch4#sec_storage_multidimensional) - [全文检索](/ch4#sec_storage_full_text) - [向量嵌入](/ch4#id92) - [总结](/ch4#summary) - [参考](/ch4#参考) ## [5. 编码与演化](/ch5) - [编码数据的格式](/ch5#sec_encoding_formats) - [特定语言的格式](/ch5#id96) - [JSON、XML 及其二进制变体](/ch5#sec_encoding_json) - [JSON 模式](/ch5#json-schema) - [二进制编码](/ch5#binary-encoding) - [Protocol Buffers](/ch5#sec_encoding_protobuf) - [字段标签与模式演化](/ch5#field-tags-and-schema-evolution) - [Avro](/ch5#sec_encoding_avro) - [写入者模式与读取者模式](/ch5#the-writers-schema-and-the-readers-schema) - [模式演化规则](/ch5#schema-evolution-rules) - [但什么是写入者模式?](/ch5#but-what-is-the-writers-schema) - [动态生成的模式](/ch5#dynamically-generated-schemas) - [模式的优点](/ch5#sec_encoding_schemas) - [数据流的模式](/ch5#sec_encoding_dataflow) - [流经数据库的数据流](/ch5#sec_encoding_dataflow_db) - [不同时间写入的不同值](/ch5#different-values-written-at-different-times) - [归档存储](/ch5#archival-storage) - [流经服务的数据流:REST 与 RPC](/ch5#sec_encoding_dataflow_rpc) - [Web 服务](/ch5#sec_web_services) - [远程过程调用(RPC)的问题](/ch5#sec_problems_with_rpc) - [负载均衡器、服务发现和服务网格](/ch5#sec_encoding_service_discovery) - [RPC 的数据编码与演化](/ch5#data-encoding-and-evolution-for-rpc) - [持久化执行与工作流](/ch5#sec_encoding_dataflow_workflows) - [持久化执行](/ch5#durable-execution) - [事件驱动的架构](/ch5#sec_encoding_dataflow_msg) - [消息代理](/ch5#message-brokers) - [分布式 actor 框架](/ch5#distributed-actor-frameworks) - [总结](/ch5#summary) - [参考](/ch5#参考) ## [6. 复制](/ch6) - [单主复制](/ch6#sec_replication_leader) - [同步复制与异步复制](/ch6#sec_replication_sync_async) - [设置新的副本](/ch6#sec_replication_new_replica) - [处理节点故障](/ch6#sec_replication_failover) - [从节点故障:追赶恢复](/ch6#follower-failure-catch-up-recovery) - [领导者故障:故障转移](/ch6#leader-failure-failover) - [复制日志的实现](/ch6#sec_replication_implementation) - [基于语句的复制](/ch6#statement-based-replication) - [预写日志(WAL)传输](/ch6#write-ahead-log-wal-shipping) - [逻辑(基于行)日志复制](/ch6#logical-row-based-log-replication) - [复制延迟的问题](/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_topologies) - [不同拓扑的问题](/ch6#problems-with-different-topologies) - [同步引擎与本地优先软件](/ch6#sec_replication_offline_clients) - [实时协作、离线优先和本地优先应用](/ch6#real-time-collaboration-offline-first-and-local-first-apps) - [同步引擎的利弊](/ch6#pros-and-cons-of-sync-engines) - [处理写入冲突](/ch6#sec_replication_write_conflicts) - [冲突避免](/ch6#conflict-avoidance) - [最后写入者胜(丢弃并发写入)](/ch6#sec_replication_lww) - [手动冲突解决](/ch6#manual-conflict-resolution) - [自动冲突解决](/ch6#automatic-conflict-resolution) - [CRDT 与操作变换](/ch6#sec_replication_crdts) - [什么是冲突?](/ch6#what-is-a-conflict) - [无主复制](/ch6#sec_replication_leaderless) - [当节点故障时写入数据库](/ch6#id287) - [追赶错过的写入](/ch6#sec_replication_read_repair) - [读写仲裁](/ch6#sec_replication_quorum_condition) - [仲裁一致性的局限](/ch6#sec_replication_quorum_limitations) - [监控陈旧性](/ch6#monitoring-staleness) - [单主与无主复制的性能](/ch6#sec_replication_leaderless_perf) - [多地区操作](/ch6#multi-region-operation) - [检测并发写入](/ch6#sec_replication_concurrent) - ["先发生"关系与并发](/ch6#sec_replication_happens_before) - [捕获先发生关系](/ch6#capturing-the-happens-before-relationship) - [版本向量](/ch6#version-vectors) - [总结](/ch6#summary) - [参考](/ch6#参考) ## [7. 分片](/ch7) - [分片的利与弊](/ch7#sec_sharding_reasons) - [面向多租户的分片](/ch7#sec_sharding_multitenancy) - [键值数据的分片](/ch7#sec_sharding_key_value) - [按键的范围分片](/ch7#sec_sharding_key_range) - [重新平衡键范围分片数据](/ch7#rebalancing-key-range-sharded-data) - [按键的哈希分片](/ch7#sec_sharding_hash) - [哈希取模节点数](/ch7#hash-modulo-number-of-nodes) - [固定数量的分片](/ch7#fixed-number-of-shards) - [按哈希范围分片](/ch7#sharding-by-hash-range) - [一致性哈希](/ch7#sec_sharding_consistent_hashing) - [倾斜的工作负载与缓解热点](/ch7#sec_sharding_skew) - [运维:自动/手动再均衡](/ch7#sec_sharding_operations) - [请求路由](/ch7#sec_sharding_routing) - [分片与二级索引](/ch7#sec_sharding_secondary_indexes) - [本地二级索引](/ch7#id166) - [全局二级索引](/ch7#id167) - [总结](/ch7#summary) - [References](/ch7#references) ## [8. 事务](/ch8) - [事务到底是什么?](/ch8#sec_transactions_overview) - [ACID 的含义](/ch8#sec_transactions_acid) - [原子性](/ch8#sec_transactions_acid_atomicity) - [一致性](/ch8#sec_transactions_acid_consistency) - [隔离性](/ch8#sec_transactions_acid_isolation) - [持久性](/ch8#durability) - [单对象与多对象操作](/ch8#sec_transactions_multi_object) - [单对象写入](/ch8#sec_transactions_single_object) - [多对象事务的需求](/ch8#sec_transactions_need) - [处理错误和中止](/ch8#handling-errors-and-aborts) - [弱隔离级别](/ch8#sec_transactions_isolation_levels) - [读已提交](/ch8#sec_transactions_read_committed) - [没有脏读](/ch8#no-dirty-reads) - [没有脏写](/ch8#sec_transactions_dirty_write) - [实现读已提交](/ch8#sec_transactions_read_committed_impl) - [快照隔离与可重复读](/ch8#sec_transactions_snapshot_isolation) - [多版本并发控制(MVCC)](/ch8#sec_transactions_snapshot_impl) - [观察一致快照的可见性规则](/ch8#sec_transactions_mvcc_visibility) - [索引与快照隔离](/ch8#indexes-and-snapshot-isolation) - [快照隔离、可重复读和命名混淆](/ch8#snapshot-isolation-repeatable-read-and-naming-confusion) - [防止丢失更新](/ch8#sec_transactions_lost_update) - [原子写操作](/ch8#atomic-write-operations) - [显式锁定](/ch8#explicit-locking) - [自动检测丢失的更新](/ch8#automatically-detecting-lost-updates) - [条件写入(比较并设置)](/ch8#sec_transactions_compare_and_set) - [冲突解决与复制](/ch8#conflict-resolution-and-replication) - [写偏斜与幻读](/ch8#sec_transactions_write_skew) - [描述写偏斜](/ch8#characterizing-write-skew) - [更多写偏斜的例子](/ch8#more-examples-of-write-skew) - [导致写偏斜的幻读](/ch8#sec_transactions_phantom) - [物化冲突](/ch8#materializing-conflicts) - [可串行化](/ch8#sec_transactions_serializability) - [实际串行执行](/ch8#sec_transactions_serial) - [将事务封装在存储过程中](/ch8#encapsulating-transactions-in-stored-procedures) - [存储过程的利弊](/ch8#sec_transactions_stored_proc_tradeoffs) - [分片](/ch8#sharding) - [串行执行总结](/ch8#summary-of-serial-execution) - [两阶段锁定(2PL)](/ch8#sec_transactions_2pl) - [两阶段锁定的实现](/ch8#implementation-of-two-phase-locking) - [两阶段锁定的性能](/ch8#performance-of-two-phase-locking) - [谓词锁](/ch8#predicate-locks) - [索引范围锁](/ch8#sec_transactions_2pl_range) - [可串行化快照隔离(SSI)](/ch8#sec_transactions_ssi) - [悲观并发控制与乐观并发控制](/ch8#pessimistic-versus-optimistic-concurrency-control) - [基于过时前提的决策](/ch8#decisions-based-on-an-outdated-premise) - [检测陈旧的 MVCC 读取](/ch8#detecting-stale-mvcc-reads) - [检测影响先前读取的写入](/ch8#sec_detecting_writes_affect_reads) - [可串行化快照隔离的性能](/ch8#performance-of-serializable-snapshot-isolation) - [分布式事务](/ch8#sec_transactions_distributed) - [两阶段提交(2PC)](/ch8#sec_transactions_2pc) - [系统性的承诺](/ch8#a-system-of-promises) - [协调器故障](/ch8#coordinator-failure) - [三阶段提交](/ch8#three-phase-commit) - [跨不同系统的分布式事务](/ch8#sec_transactions_xa) - [精确一次消息处理](/ch8#sec_transactions_exactly_once) - [XA 事务](/ch8#xa-transactions) - [存疑时持有锁](/ch8#holding-locks-while-in-doubt) - [从协调器故障中恢复](/ch8#recovering-from-coordinator-failure) - [XA 事务的问题](/ch8#problems-with-xa-transactions) - [数据库内部的分布式事务](/ch8#sec_transactions_internal) - [再谈精确一次消息处理](/ch8#exactly-once-message-processing-revisited) - [总结](/ch8#summary) - [参考](/ch8#参考) ## [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#network-congestion-and-queueing) - [同步与异步网络](/ch9#sec_distributed_sync_networks) - [我们不能简单地使网络延迟可预测吗?](/ch9#can-we-not-simply-make-network-delays-predictable) - [不可靠的时钟](/ch9#sec_distributed_clocks) - [单调时钟与日历时钟](/ch9#sec_distributed_monotonic_timeofday) - [日历时钟](/ch9#time-of-day-clocks) - [单调时钟](/ch9#monotonic-clocks) - [时钟同步和准确性](/ch9#sec_distributed_clock_accuracy) - [对同步时钟的依赖](/ch9#sec_distributed_clocks_relying) - [用于事件排序的时间戳](/ch9#sec_distributed_lww) - [带置信区间的时钟读数](/ch9#clock-readings-with-a-confidence-interval) - [用于全局快照的同步时钟](/ch9#sec_distributed_spanner) - [进程暂停](/ch9#sec_distributed_clocks_pauses) - [响应时间保证](/ch9#sec_distributed_clocks_realtime) - [限制垃圾回收的影响](/ch9#sec_distributed_gc_impact) - [知识、真相和谎言](/ch9#sec_distributed_truth) - [多数派原则](/ch9#sec_distributed_majority) - [分布式锁和租约](/ch9#sec_distributed_lock_fencing) - [隔离僵尸进程和延迟请求](/ch9#sec_distributed_fencing_tokens) - [多副本隔离](/ch9#fencing-with-multiple-replicas) - [拜占庭故障](/ch9#sec_distributed_byzantine) - [弱形式的谎言](/ch9#weak-forms-of-lying) - [系统模型与现实](/ch9#sec_distributed_system_model) - [定义算法的正确性](/ch9#defining-the-correctness-of-an-algorithm) - [安全性与活性](/ch9#sec_distributed_safety_liveness) - [将系统模型映射到现实世界](/ch9#mapping-system-models-to-the-real-world) - [形式化方法和随机测试](/ch9#sec_distributed_formal) - [模型检查与规范语言](/ch9#model-checking-and-specification-languages) - [故障注入](/ch9#sec_fault_injection) - [确定性模拟测试](/ch9#deterministic-simulation-testing) - [总结](/ch9#summary) - [参考](/ch9#参考) ## [10. 一致性与共识](/ch10) - [线性一致性](/ch10#sec_consistency_linearizability) - [什么使系统具有线性一致性?](/ch10#sec_consistency_lin_definition) - [依赖线性一致性](/ch10#sec_consistency_linearizability_usage) - [锁定与领导者选举](/ch10#locking-and-leader-election) - [约束与唯一性保证](/ch10#sec_consistency_uniqueness) - [跨通道时序依赖](/ch10#cross-channel-timing-dependencies) - [实现线性一致性系统](/ch10#sec_consistency_implementing_linearizable) - [线性一致性与仲裁](/ch10#sec_consistency_quorum_linearizable) - [线性一致性的代价](/ch10#sec_linearizability_cost) - [CAP 定理](/ch10#the-cap-theorem) - [线性一致性与网络延迟](/ch10#linearizability-and-network-delays) - [ID 生成器和逻辑时钟](/ch10#sec_consistency_logical) - [逻辑时钟](/ch10#sec_consistency_timestamps) - [Lamport 时间戳](/ch10#lamport-timestamps) - [混合逻辑时钟](/ch10#hybrid-logical-clocks) - [Lamport/混合逻辑时钟 vs. 向量时钟](/ch10#lamporthybrid-logical-clocks-vs-vector-clocks) - [线性一致的 ID 生成器](/ch10#sec_consistency_linearizable_id) - [实现线性一致的 ID 生成器](/ch10#implementing-a-linearizable-id-generator) - [使用逻辑时钟强制约束](/ch10#enforcing-constraints-using-logical-clocks) - [共识](/ch10#sec_consistency_consensus) - [共识的多面性](/ch10#sec_consistency_faces) - [单值共识](/ch10#single-value-consensus) - [比较并设置作为共识](/ch10#compare-and-set-as-consensus) - [共享日志作为共识](/ch10#sec_consistency_shared_logs) - [获取并增加作为共识](/ch10#fetch-and-add-as-consensus) - [原子提交作为共识](/ch10#atomic-commitment-as-consensus) - [共识的实践](/ch10#sec_consistency_total_order) - [使用共享日志](/ch10#sec_consistency_smr) - [从单主复制到共识](/ch10#from-single-leader-replication-to-consensus) - [共识的微妙之处](/ch10#subtleties-of-consensus) - [共识的利弊](/ch10#pros-and-cons-of-consensus) - [总结](/ch10#summary) - [参考文献](/ch10#参考文献) ## [第十一章:批处理](/ch11) - [使用Unix工具的批处理](/ch11#使用unix工具的批处理) - [简单日志分析](/ch11#简单日志分析) - [命令链与自定义程序](/ch11#命令链与自定义程序) - [排序 VS 内存中的聚合](/ch11#排序-vs-内存中的聚合) - [Unix哲学](/ch11#unix哲学) - [统一的接口](/ch11#统一的接口) - [逻辑与布线相分离](/ch11#逻辑与布线相分离) - [透明度和实验](/ch11#透明度和实验) - [MapReduce和分布式文件系统](/ch11#mapreduce和分布式文件系统) - [MapReduce作业执行](/ch11#mapreduce作业执行) - [分布式执行MapReduce](/ch11#分布式执行mapreduce) - [MapReduce工作流](/ch11#mapreduce工作流) - [Reduce侧连接与分组](/ch11#reduce侧连接与分组) - [示例:用户活动事件分析](/ch11#示例用户活动事件分析) - [排序合并连接](/ch11#排序合并连接) - [把相关数据放在一起](/ch11#把相关数据放在一起) - [分组](/ch11#分组) - [处理偏斜](/ch11#处理偏斜) - [Map侧连接](/ch11#map侧连接) - [广播散列连接](/ch11#广播散列连接) - [分区散列连接](/ch11#分区散列连接) - [Map侧合并连接](/ch11#map侧合并连接) - [MapReduce工作流与Map侧连接](/ch11#mapreduce工作流与map侧连接) - [批处理工作流的输出](/ch11#批处理工作流的输出) - [建立搜索索引](/ch11#建立搜索索引) - [键值存储作为批处理输出](/ch11#键值存储作为批处理输出) - [批处理输出的哲学](/ch11#批处理输出的哲学) - [Hadoop与分布式数据库的对比](/ch11#hadoop与分布式数据库的对比) - [存储多样性](/ch11#存储多样性) - [处理模型的多样性](/ch11#处理模型的多样性) - [针对频繁故障设计](/ch11#针对频繁故障设计) - [MapReduce之后](/ch11#mapreduce之后) - [物化中间状态](/ch11#物化中间状态) - [数据流引擎](/ch11#数据流引擎) - [容错](/ch11#容错) - [关于物化的讨论](/ch11#关于物化的讨论) - [图与迭代处理](/ch11#图与迭代处理) - [Pregel处理模型](/ch11#pregel处理模型) - [容错](/ch11#容错) - [并行执行](/ch11#并行执行) - [高级API和语言](/ch11#高级api和语言) - [向声明式查询语言的转变](/ch11#向声明式查询语言的转变) - [专业化的不同领域](/ch11#专业化的不同领域) - [本章小结](/ch11#本章小结) - [参考文献](/ch11#参考文献) ## [第十二章:流处理](/ch12) - [传递事件流](/ch12#传递事件流) - [消息传递系统](/ch12#消息传递系统) - [直接从生产者传递给消费者](/ch12#直接从生产者传递给消费者) - [消息代理](/ch12#消息代理) - [消息代理与数据库的对比](/ch12#消息代理与数据库的对比) - [多个消费者](/ch12#多个消费者) - [确认与重新传递](/ch12#确认与重新传递) - [分区日志](/ch12#分区日志) - [使用日志进行消息存储](/ch12#使用日志进行消息存储) - [日志与传统的消息传递相比](/ch12#日志与传统的消息传递相比) - [消费者偏移量](/ch12#消费者偏移量) - [磁盘空间使用](/ch12#磁盘空间使用) - [当消费者跟不上生产者时](/ch12#当消费者跟不上生产者时) - [重播旧消息](/ch12#重播旧消息) - [数据库与流](/ch12#数据库与流) - [保持系统同步](/ch12#保持系统同步) - [变更数据捕获](/ch12#变更数据捕获) - [变更数据捕获的实现](/ch12#变更数据捕获的实现) - [初始快照](/ch12#初始快照) - [日志压缩](/ch12#日志压缩) - [变更流的API支持](/ch12#变更流的api支持) - [事件溯源](/ch12#事件溯源) - [从事件日志中派生出当前状态](/ch12#从事件日志中派生出当前状态) - [命令和事件](/ch12#命令和事件) - [状态、流和不变性](/ch12#状态流和不变性) - [不可变事件的优点](/ch12#不可变事件的优点) - [从同一事件日志中派生多个视图](/ch12#从同一事件日志中派生多个视图) - [并发控制](/ch12#并发控制) - [不变性的局限性](/ch12#不变性的局限性) - [流处理](/ch12#流处理) - [流处理的应用](/ch12#流处理的应用) - [复合事件处理](/ch12#复合事件处理) - [流分析](/ch12#流分析) - [维护物化视图](/ch12#维护物化视图) - [在流上搜索](/ch12#在流上搜索) - [消息传递和RPC](/ch12#消息传递和rpc) - [时间推理](/ch12#时间推理) - [事件时间与处理时间](/ch12#事件时间与处理时间) - [知道什么时候准备好了](/ch12#知道什么时候准备好了) - [你用的是谁的时钟?](/ch12#你用的是谁的时钟) - [窗口的类型](/ch12#窗口的类型) - [流连接](/ch12#流连接) - [流流连接(窗口连接)](/ch12#流流连接窗口连接) - [流表连接(流扩充)](/ch12#流表连接流扩充) - [表表连接(维护物化视图)](/ch12#表表连接维护物化视图) - [连接的时间依赖性](/ch12#连接的时间依赖性) - [容错](/ch12#容错) - [微批量与存档点](/ch12#微批量与存档点) - [原子提交再现](/ch12#原子提交再现) - [幂等性](/ch12#幂等性) - [失败后重建状态](/ch12#失败后重建状态) - [本章小结](/ch12#本章小结) - [参考文献](/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#参考文献) ## [术语表](/glossary) ## [后记](/colophon) - [关于作者](/colophon#关于作者) - [关于译者](/colophon#关于译者) - [后记](/colophon#后记)