Hi!
好的,非常感谢!
很期待你接下来的回复。
|
Best,
Jimmy
|
Signature is customized by Netease Mail Master
在2020年07月13日 19:58,Congxian Qiu 写道:
Hi
从 HeapListState#add 这里看是的,我跟了一个 WindowOperator 到最终 HeapListState
的逻辑,这里确实是只有一份数据,没有拷贝。这个东西的实现可能是因为性能好,我尝试确认下这个原因,多谢你的提问。
Best,
Congxian
Jimmy Zhang <13669299...@163
Hi,all!
从WindowOperator.java的processElement方法跟进去,使用windowState.add(element.getValue());添加数据,这里面找到add方法的HeapListState类的实现,
@Override
public void add(V value) {
Preconditions.checkNotNull(value, "You cannot add null to a ListState.");
final N namespace = currentNamespace;
final StateTable> m
嗯嗯,之前没有选择回复全部,不好意思。
我看源码关于RocksDB这块确实是需要序列化的,所以肯定是多份保存,如果状态后端是heap呢,也是一样的吗?从我测试内存来看,感觉也是多份,只是heapliststate那个类给了我一些困惑😦
在2020年07月11日 16:23,Congxian Qiu 写道:
Hi
每个窗口都是一个单独的 state,至于你认为的不同 state 仅保持引用是不对的。这个你可以使用 RocksDBStateBackend
来考虑,RocksDBStateBackend 中会把 state 序列化成 bytes,然后写到 RocksDB 中,就是每个 S