gydtep 发表于 2022-11-2 07:58:43
机器学习、自动驾驶等产业。据《财新》报道,RISC-V已经吸引了谷歌、阿里巴巴、三星、华为、英伟达、西部数据等全球500多家企业参与研发。gydtep 发表于 2022-11-2 16:00:51
相应地,流计算中的一致性可以定义为:流计算系统在计算过程中,或是出现故障恢复计算后,流系统的内部状态和外部输出的数据应该处在一致的状态。gydtep 发表于 2022-11-2 16:02:10
譬如,当故障恢复后开始重新计算,计算的结果是否满足数据的一致性(即用户无法区分恢复前和恢复后的数据)?gydtep 发表于 2022-11-3 07:08:20
从输入、处理过程、输出,每一个环节都需要保证其自身的数据一致性,同时在整个流计算流程中,作为整体实现了端到端的一致性。gydtep 发表于 2022-11-3 13:57:57
当在 t ~ t + 1 时刻发生故障,恢复函数 R 可以屏蔽此次故障产生的副作用,让使用方认为没有故障发生,可以得到正确的 O(t+1),显然,解决的思路是gydtep 发表于 2022-11-3 19:06:21
对于存在不确定性计算的流计算场景,当 FailOver 时,引擎会从源头重新发送消息进行重算,多次计算可能会产生的不一致的结果gydtep 发表于 2022-11-3 19:27:55
MillWheel 会对每一条记录赋予一个唯一 ID,同时基于此 ID 维护一份是否处理过当前记录的目录。gydtep 发表于 2022-11-4 08:06:28
我们在上面定义了端到端一致性难题:R(E(t), O(t)) = O(t+1)。从输出结果的使用方(引擎内部和引擎下游数据消费方)的视角来看:对于记录 O(t+1),gydtep 发表于 2022-11-4 13:10:44
我们在这里将引擎状态作为一种特殊输出的考虑有两点。其一,引擎的状态一般也是输出到外部存储如 RocksDB/HDFS,这和计算下游的输出别无二致。其二,通过屏蔽引擎内部的容错机制实现,简化端到端一致性问题的抽象过程,便于更好地理解问题本身。gydtep 发表于 2022-11-4 19:06:43
目前流计算引擎的种类非常多,不是所有的引擎都可以实现端到端一致的流处理,在具备此能力的引擎中,从技术成本、引擎架构、能力范围考虑,会有不同的取舍和实现,