知识卡片

复杂性来自增量

普通读书笔记卡 · 1783

内容

传统数据库扩展常把写入、索引、队列、从库和修复逻辑缠在一起;每次增量更新都把历史状态改写一遍,错误也会被写进核心数据。大数据系统要先降低状态可变性,再谈扩展,否则机器越多,复杂性也越多。

参考来源

- 位置:《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》第1章《大数据的新范式》"1.2 扩展传统数据库"一节(源文件:_epub-src/OEBPS/Text/009.xhtml) - 结论依据:原文以网络分析应用为例,逐步引入队列、分片、从分片、重新切分脚本来应对扩展问题,最终指出"系统并不是针对人为错误设计的……随着系统变得越来越复杂,它越来越有可能产生错误",说明增量式扩展会把各类修复逻辑缠在一起并让错误写入核心数据。 - 原始内容:随着简单网络分析应用程序的发展,系统不断变得越来越复杂:队列、分片、副本、重新切分的脚本等……最严重的问题是,系统并不是针对人为错误设计的。恰恰相反,实际上,随着系统变得越来越复杂,它越来越有可能产生错误……开发者在生产环境中不小心为每个URL部署了一个错误的网页浏览量的增量……直到24h后才意识到这个错误,但已经造成了损坏。