【发布时间】:2020-07-01 21:18:44
【问题描述】:
我们有一个使用状态(ValueState 和 ListState)和 TTL(StateTtlConfig) 的拓扑,因为我们不能使用计时器(我们会每天生成数亿个计时器,并且确实可以扩展:生成保存点/检查点需要数小时,might even get stuck while running)。
但是,我们需要在运行时根据某些传入事件的类型和其他逻辑来更新 TTL 的值。可以用新的 StateTtlConfig(和更新的 TTL 时间)重新创建一个新状态,并在 processElement1() 和 processElement2() 的 CoProcessFunction 方法中将值从“旧”复制到“新”(而不是在open() 就像我们通常做的那样)?
我猜“旧”状态会被垃圾回收(?)。
这个解决方案可以扩展吗?表现出色?产生任何问题?有什么不好的吗?
【问题讨论】:
标签: apache-flink rocksdb