我发现我们之前state用的策略是`ReturnExpiredIfNotCleanedUp`策略,而不是`NeverReturnExpired`, 所以这个问题现在是不能完全避免了。 我已经建了一个jira[1]来跟踪和改进这一点。
[1] https://issues.apache.org/jira/browse/FLINK-17199 酷酷的浑蛋 <[email protected]> 于2020年4月17日周五 下午12:51写道: > > > > > 我把版本升级到了flink1.10.0,这个问题又复现了,该怎么办呢? > 在2020年4月16日 15:28,酷酷的浑蛋<[email protected]> 写道: > 好的谢谢,我这里是1.9.1,我先试试升级版本能不能解决这个 > > > > > 在2020年4月15日 18:04,Benchao Li<[email protected]> 写道: > Hi, > > 你用的是哪个版本呢? > 在1.9版本里面的确是有点问题,默认没有开启cleanup in background > [1],不知道是不是这个问题导致的。不过这个已经在1.9.3中修复了。 > > [1] https://issues.apache.org/jira/browse/FLINK-15938 > > 酷酷的浑蛋 <[email protected]> 于2020年4月15日周三 下午5:40写道: > > > > 我在flink sql中设置了 > tableConfig.setIdleStateRetentionTime(Time.minutes(1), Time.minutes(6)); > sql: select * from test t join test2 t2 on t.a=t2.a > > > 当超过过期时间的时候,已经过期的数据还会被关联到一次,然后状态才会被清除,有什么方式可以数据过期了不用等到在关联(读到)一次在清除呢?非sql的话可以用StateTtlConfigttlConfig=StateTtlConfig来设置,sql中要怎么设置呢?官网上没有给出说明 > > > > -- > > Benchao Li > School of Electronics Engineering and Computer Science, Peking University > Tel:+86-15650713730 > Email: [email protected]; [email protected] > -- Benchao Li School of Electronics Engineering and Computer Science, Peking University Tel:+86-15650713730 Email: [email protected]; [email protected]
