知识卡片
增量隐藏状态
内容
增量算法只处理变化量,性能诱人,但必须正确维护中间状态和历史依赖。一旦需求改变、旧逻辑有 bug 或输入乱序,隐藏状态会变成债务;是否增量化应先看状态复杂度,而不是只看速度。
参考来源
- 位置:《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》第6章《批处理层》"6.3.1 性能"与"6.3.3 算法的通用性"(源文件:_epub-src/OEBPS/Text/047.xhtml)
- 结论依据:原文以独立访客计数为例说明"增量算法只检查新的页面浏览量,所以它的视图必须要包含每个URL的访客的全部集合……因此,增量算法的视图可能和主数据集一样大",并指出增量算法"常常需要定制才能解决问题"、会"将复杂性转移到了动态计算中",说明增量化前必须先评估状态复杂度而非只看速度。
- 原始内容:增量算法只检查新的页面浏览量,所以它的视图必须要包含每个URL的访客的全部集合,这样才可以确定对应新数据中的记录,进而返回访客计数。因此,增量算法的视图可能和主数据集一样大!……尽管增量算法可以更快地运行,但它们常常需要定制才能解决问题。