知识卡片

增量计算难点

普通读书笔记卡 · 1789.c

内容

在实时环境中用增量算法追求最终一致性,需要靠CRDT等结构做冲突合并,合并逻辑(读修复算法)本身就是人为错误的高发地。但Lambda架构有固有保护:即使实时视图因合并逻辑出错而损坏,后续批处理层和服务层仍会重新计算并自动纠正,最坏结果只是暂时性错误而非永久损坏。

参考来源

- 位置:《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》第12章《实时视图》"12.3 增量计算的挑战"及"12.3.2 CAP原理和增量算法之间复杂的相互作用"(源文件:_epub-src/OEBPS/Text/093.xhtml) - 结论依据:原文明确"这些合并算法通常被称为读修复算法,是人为错误的巨大来源",并说明"Lambda架构的固有保护可以避免出错。如果由于忘记了一种边的情况或搞砸了合并算法而导致实时视图被损坏,那么之后批处理层和服务层将在服务层视图中自动纠正错误。就错误而言,最糟糕的可能结果是暂时的损坏"。 - 原始内容:如你所见,在实时的最终一致性环境下,实现计数更加复杂……这些合并算法通常被称为读修复算法,是人为错误的巨大来源……不幸的是,如果想要实现速度层的最终一致性,那么这种复杂性是无法摆脱的。但是有一件事情是有益的——Lambda架构的固有保护可以避免出错……就错误而言,最糟糕的可能结果是暂时的损坏。