gydtep
发表于 2022-11-1 13:42:40
芯片是“集成电路”的俗称。要在芯片上执行软件程序,必须先将软件/程序语言翻译成硬件指令,这套标准规范即芯片架构/指令集(ISA,Instruction Set Architecture),X86、Arm、RISC-V都是指令集的代号。
gydtep
发表于 2022-11-2 07:58:24
RISC-V 基金会首席执行官 Calista Redmond 曾透露,截至2020年底,在全球范围内RISC-V芯片(SoC、IP和FPGA)已推出93款,覆盖了云端、移动、高性能运算
gydtep
发表于 2022-11-2 15:20:44
相应的,批计算更准确的说法是有界数据(bounded data)的处理,亦即有明确边界的数据处理,流和批只是两种不同数据集的传统数据计算方法
gydtep
发表于 2022-11-3 07:07:59
端到端的数据一致性
端到端一致性(End-To-Ene Consistency),即将数据的输出也作为流计算引擎的一致性设计的一部分,正确的结果贯穿着这整个流计算应用的始终:
gydtep
发表于 2022-11-3 13:15:04
如果定义流计算的输入集合为:E,t 时刻以来的输入集合为 E(t),输出集合为 Sink(t),引擎此时状态为 State(t),State(t) 包括各个算子的状态(包括上面提到的不确定性计算)、数据源的消费偏移量(或文件读取偏移等)等:
gydtep
发表于 2022-11-3 16:35:31
则很多约束条件会有所简化。由于 O(t) = Sink(t) + State(t) ,引擎内部很好实现幂等状态更新,若引擎下游系统也实现了数据幂等,
gydtep
发表于 2022-11-4 08:49:21
因此,我们得到流计算引擎要实现端到端一致性数据处理语义的充分必要条件:在流计算过程中,需要实时存储每一条中间和最终计算结果,如果考虑吞吐率不能存储每一条
gydtep
发表于 2022-11-4 13:10:28
F(E(t), O(t)) = O(t+1)
结合流计算上面流计算一致性的定义,我们希望在引擎发生故障 FailOver 时,存在一种恢复函数 R 使得
R(E(t), O(t)) = O'(t+1),且 O'(t+1) = O(t+1)
gydtep
发表于 2022-11-4 17:36:04
譬如只有部分节点的结果输出了,其他节点发生了故障结果丢失,则可以通过回到上个批次提交的状态,重算此批次数据,
gydtep
发表于 2022-11-5 08:57:11
算子的状态快照存储类似于 2PC 的 Prepare 阶段,但 Commit 的确认仅需 Coordinator( Flink JobManager) 根据「是否收到了完整算子的 ACK 」来推出是否 Commit 或 Abort。