在storm的不透明分区事务拓扑中(IOpaquePartitionedTrident),当出现计算错误且重发消息时发现kafka分区不可读时,拓扑是如何依据已经持久化的[txid,curr,prev]做到全量回滚(回滚指的是,在持久化过程中,txid一样,所以基于prev重新计算)的呢?
按照我自己的理解,出现以上情况时,因为同一个事务id会包含不同的tuple,就意味这需要持久话的key和value也会不一样,那么结果只会回滚重复计算两次中key重叠的部分
在storm的不透明分区事务拓扑中(IOpaquePartitionedTrident),当出现计算错误且重发消息时发现kafka分区不可读时,拓扑是如何依据已经持久化的[txid,curr,prev]做到全量回滚(回滚指的是,在持久化过程中,txid一样,所以基于prev重新计算)的呢?
按照我自己的理解,出现以上情况时,因为同一个事务id会包含不同的tuple,就意味这需要持久话的key和value也会不一样,那么结果只会回滚重复计算两次中key重叠的部分