我试图弄清楚如何定义协议/解决方案,以实现并行独立管道中节点(处理单元)的数据一致性,最终输出合并到单个节点(管道)。
我不确定我是否正确地指出了这个问题,并且我感觉它更像是一个普通/常见问题。
不要以数据一致性来误解它,这是数据库的典型问题。在这里,我们谈论管道和无尽的数据流。
这是一个序列图和框图以阐明我的问题
如果只有一个管道,则可以将节点输出与用于生成输出的数据版本相关联。然后,在接收节点上,我可以使用相同版本的数据。当顶部准备就绪时,从快照V1到V2的切换将是从上到下。
但是,如果节点使用并行独立管道中节点的输出,则此方法不起作用。一个节点可以接收在两个不同版本的预配置节点的Snapshot版本上计算的输出,这些版本在不同的时间开始计算(一种模式在Snapshot V2发布之前,另一种在之后)。
可能的解决方案是使节点为所有当前可用的(对于节点而言)快照生成输出。 这不是可接受的解决方案。首先,因为这只会浪费计算和数据预算。其次,节点不知道何时可以停止为旧快照生成输出。在节点之间也无法建立反向连接。