Re: Flink1.9设置TTL不生效

2020-12-04 文章 Yang Peng
没人遇到这种问题吗?

Yang Peng  于2020年12月3日周四 下午8:49写道:

> Hi,咨询一个问题 我们生产环境使用flink1.9版本,使用的statebackend为RocksDB,具体代码设置如下:
>
> private static final String EV_STATE_FLAG = "EV_EID_FLAG";
>
> StateTtlConfig ttlConfig = StateTtlConfig
> .newBuilder(Time.minutes(60))
> .updateTtlOnCreateAndWrite()
> .neverReturnExpired()
> .cleanupInRocksdbCompactFilter(1000)
> .build();
> MapStateDescriptor eidMapStateDesc = new
> MapStateDescriptor<>( EV_STATE_FLAG , BasicTypeInfo.STRING_TYPE_INFO,
> BasicTypeInfo.INT_TYPE_INFO);
> eidMapStateDesc.enableTimeToLive(ttlConfig);
> eidMapState = getRuntimeContext().getMapState(eidMapStateDesc);
>
> 设置TTL过期时间为60mins
> 但是目前已经运行了一天了,通过rocksdb监控我们查看EV_STATE_FLAG这个名称的SST文件一直在增加没有降低的趋势,我们从TM日志发现如下信息:
> WARN org.rocksdb.FlinkCompactionFilter - Cannot configure RocksDB TTL
> compaction filter for state < EV_EID_FLAG >: feature is disabled for the
> state backend.
> 但是我们在添加完  state.backend.rocksdb.ttl.compaction.filter.enabled:
> true这个参数重启任务之后上述warn
> 信息就会消失,但是任务运行一段时间后就会执行cp失败,我们查看jstack发现执行cp失败是卡在了获取state数据的代码位置,去掉这个参数之后任务就会恢复,但是TTL
> 配置不生效这个warn就会复现,大家有遇到过这种问题吗?
>


Flink1.9设置TTL不生效

2020-12-03 文章 Yang Peng
Hi,咨询一个问题 我们生产环境使用flink1.9版本,使用的statebackend为RocksDB,具体代码设置如下:

private static final String EV_STATE_FLAG = "EV_EID_FLAG";

StateTtlConfig ttlConfig = StateTtlConfig
.newBuilder(Time.minutes(60))
.updateTtlOnCreateAndWrite()
.neverReturnExpired()
.cleanupInRocksdbCompactFilter(1000)
.build();
MapStateDescriptor eidMapStateDesc = new
MapStateDescriptor<>( EV_STATE_FLAG , BasicTypeInfo.STRING_TYPE_INFO,
BasicTypeInfo.INT_TYPE_INFO);
eidMapStateDesc.enableTimeToLive(ttlConfig);
eidMapState = getRuntimeContext().getMapState(eidMapStateDesc);

设置TTL过期时间为60mins
但是目前已经运行了一天了,通过rocksdb监控我们查看EV_STATE_FLAG这个名称的SST文件一直在增加没有降低的趋势,我们从TM日志发现如下信息:
WARN org.rocksdb.FlinkCompactionFilter - Cannot configure RocksDB TTL
compaction filter for state < EV_EID_FLAG >: feature is disabled for the
state backend.
但是我们在添加完  state.backend.rocksdb.ttl.compaction.filter.enabled:
true这个参数重启任务之后上述warn
信息就会消失,但是任务运行一段时间后就会执行cp失败,我们查看jstack发现执行cp失败是卡在了获取state数据的代码位置,去掉这个参数之后任务就会恢复,但是TTL
配置不生效这个warn就会复现,大家有遇到过这种问题吗?


Flink1.9设置TTL不生效

2020-12-03 文章 Yang Peng
Hi,咨询一个问题 我们生产环境使用flink1.9版本,使用的statebackend为RocksDB,具体代码设置如下:

private static final String EV_STATE_FLAG = "EV_EID_FLAG";

StateTtlConfig ttlConfig = StateTtlConfig
.newBuilder(Time.minutes(60))
.updateTtlOnCreateAndWrite()
.neverReturnExpired()
.cleanupInRocksdbCompactFilter(1000)
.build();
MapStateDescriptor eidMapStateDesc = new
MapStateDescriptor<>( EV_STATE_FLAG , BasicTypeInfo.STRING_TYPE_INFO,
BasicTypeInfo.INT_TYPE_INFO);
eidMapStateDesc.enableTimeToLive(ttlConfig);
eidMapState = getRuntimeContext().getMapState(eidMapStateDesc);

设置TTL过期时间为60mins
但是目前已经运行了一天了,通过rocksdb监控我们查看EV_STATE_FLAG这个名称的SST文件一直在增加没有降低的趋势,我们从TM日志发现如下信息:
WARN org.rocksdb.FlinkCompactionFilter - Cannot configure RocksDB TTL
compaction filter for state < EV_EID_FLAG >: feature is disabled for the
state backend.
但是我们在添加完  state.backend.rocksdb.ttl.compaction.filter.enabled:
true这个参数重启任务之后上述warn
信息就会消失,但是任务运行一段时间后就会执行cp失败,我们查看jstack发现执行cp失败是卡在了获取state数据的代码位置,去掉这个参数之后任务就会恢复,但是TTL
配置不生效这个warn就会复现,大家有遇到过这种问题吗?