知识卡片
中心数据库与分布式数据库的根本取舍
内容
把所有数据放进一个中心数据库最简单——无需键值映射、更新协调,数据随时一致,但代价是会变成单点故障和性能瓶颈,对地理分布用户还会带来延迟。反过来,把数据复制或分区到多个位置能降低延迟、提升可用性,代价是架构难设计、复制延迟带来不一致,非只读副本的更新协调很难。发散:两条路都不免费,选择前要想清楚未来数据量、用户量和地理分布会怎么增长。
参考来源
- 位置:第18章《信息视点》18.3.5节「过载的中心数据库」、18.3.6节「不一致的分布式数据库」(源文件:_epub-src/OEBPS/text00241.html附近)
- 结论依据:原文分别列出中心数据库方案的优点(简洁、无需键值映射)和缺点(单点故障、性能瓶颈、地理延迟),以及分布式方案的优点(降低延迟、提升可用性)和缺点(难设计构建、复制延迟导致不一致、非只读副本更新难协调),直接支持卡片结论。
- 原始内容:"这种方法更加简洁,因为不需要键值映射、更新协调和复杂的接口,所有数据都立即可用。然而,单一的中心数据库是唯一的故障点,并且最终会成为性能的瓶颈。对于地理上分布式的系统,中心数据库会为远程用户带来很大的延迟……这种方法会把数据放在离所需要的地方附近,这样可以降低延迟,提升可用性。然而,分布式的信息架构很难设计和构建,并且由于复制的延迟,通常会导致信息不一致。此外,在副本并不是只读的情况下,更新会很难管理。"