Fwd: 广播状态是否可以设置ttl过期时间

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Fwd: 广播状态是否可以设置ttl过期时间

Yang Peng


---------- Forwarded message ---------
发件人: yangpengklf007 <[hidden email]>
Date: 2019年11月7日周四 下午3:00
Subject: 广播状态是否可以设置ttl过期时间
To: [hidden email] <[hidden email]>


如下图是我设置得测试代码:在类中定义一个mapstatedesc,然后在processBroadcastElement方法中获取广播数据放入到state中 设置ttl是1s然后让程序sleep10s 再次从state中获取数据发现数据依旧存在,是广播状态不支持ttl还是我设置的方式不对,有用过的同学吗,还望不吝赐教 谢谢
Reply | Threaded
Open this post in threaded view
|

Re: 广播状态是否可以设置ttl过期时间

Dian Fu
1.8.0之前,ttl保证的是在ttl到达之前,数据不会清空,但是不保证ttl到达之后,数据一定清空。1.8.0之后提供了更完善的功能,可以看一下这个文章:https://flink.apache.org/2019/05/19/state-ttl.html <https://flink.apache.org/2019/05/19/state-ttl.html>

> 在 2019年11月7日,下午3:06,Yang Peng <[hidden email]> 写道:
>
>
>
> ---------- Forwarded message ---------
> 发件人: yangpengklf007 <[hidden email] <mailto:[hidden email]>>
> Date: 2019年11月7日周四 下午3:00
> Subject: 广播状态是否可以设置ttl过期时间
> To: [hidden email] <mailto:[hidden email]> <[hidden email] <mailto:[hidden email]>>
>
>
> 如下图是我设置得测试代码:在类中定义一个mapstatedesc,然后在processBroadcastElement方法中获取广播数据放入到state中 设置ttl是1s然后让程序sleep10s 再次从state中获取数据发现数据依旧存在,是广播状态不支持ttl还是我设置的方式不对,有用过的同学吗,还望不吝赐教 谢谢
>
>
>                              
> yangpengklf007
> [hidden email]
>  <https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=yangpengklf007&uid=yangpengklf007%40gmail.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fqiyelogo%2FdefaultAvatar.png&items=%5B%22yangpengklf007%40gmail.com%22%5D>
> 签名由 网易邮箱大师 <https://mail.163.com/dashi/dlpro.html?from=mail81> 定制

Reply | Threaded
Open this post in threaded view
|

Re: 广播状态是否可以设置ttl过期时间

Yun Tang
Hi

Broadcast State 可以看做一种operator state,只能在DefaultOperatorStateBackend里面创建 [1],TTL state目前仅是对keyed state来说的 [2]。

[1] https://github.com/apache/flink/blob/809533e5b5c686e2d21b64361d22178ccb92ec26/flink-runtime/src/main/java/org/apache/flink/runtime/state/DefaultOperatorStateBackend.java#L149
[2] https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/state/state.html#state-time-to-live-ttl 



On 11/7/19, 8:08 PM, "Dian Fu" <[hidden email]> wrote:

    1.8.0之前,ttl保证的是在ttl到达之前,数据不会清空,但是不保证ttl到达之后,数据一定清空。1.8.0之后提供了更完善的功能,可以看一下这个文章:https://flink.apache.org/2019/05/19/state-ttl.html <https://flink.apache.org/2019/05/19/state-ttl.html>
    > 在 2019年11月7日,下午3:06,Yang Peng <[hidden email]> 写道:
    >
    >
    >
    > ---------- Forwarded message ---------
    > 发件人: yangpengklf007 <[hidden email] <mailto:[hidden email]>>
    > Date: 2019年11月7日周四 下午3:00
    > Subject: 广播状态是否可以设置ttl过期时间
    > To: [hidden email] <mailto:[hidden email]> <[hidden email] <mailto:[hidden email]>>
    >
    >
    > 如下图是我设置得测试代码:在类中定义一个mapstatedesc,然后在processBroadcastElement方法中获取广播数据放入到state中 设置ttl是1s然后让程序sleep10s 再次从state中获取数据发现数据依旧存在,是广播状态不支持ttl还是我设置的方式不对,有用过的同学吗,还望不吝赐教 谢谢
    >
    >
    >                              
    > yangpengklf007
    > [hidden email]
    >  <https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=yangpengklf007&uid=yangpengklf007%40gmail.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fqiyelogo%2FdefaultAvatar.png&items=%5B%22yangpengklf007%40gmail.com%22%5D>
    > 签名由 网易邮箱大师 <https://mail.163.com/dashi/dlpro.html?from=mail81> 定制
   
   

Reply | Threaded
Open this post in threaded view
|

Re: 广播状态是否可以设置ttl过期时间

Yang Peng
In reply to this post by Dian Fu
嗯嗯,谢谢 付典老师,我理解的是虽然他不会删除但是也不应该返回过期的state值吧,应该是茶干老师说的那样只有keyed state 才支持
state的ttl吧;

Dian Fu <[hidden email]> 于2019年11月7日周四 下午8:08写道:

>
> 1.8.0之前,ttl保证的是在ttl到达之前,数据不会清空,但是不保证ttl到达之后,数据一定清空。1.8.0之后提供了更完善的功能,可以看一下这个文章:
> https://flink.apache.org/2019/05/19/state-ttl.html <
> https://flink.apache.org/2019/05/19/state-ttl.html>
> > 在 2019年11月7日,下午3:06,Yang Peng <[hidden email]> 写道:
> >
> >
> >
> > ---------- Forwarded message ---------
> > 发件人: yangpengklf007 <[hidden email] <mailto:
> [hidden email]>>
> > Date: 2019年11月7日周四 下午3:00
> > Subject: 广播状态是否可以设置ttl过期时间
> > To: [hidden email] <mailto:[hidden email]> <
> [hidden email] <mailto:[hidden email]>>
> >
> >
> >
> 如下图是我设置得测试代码:在类中定义一个mapstatedesc,然后在processBroadcastElement方法中获取广播数据放入到state中
> 设置ttl是1s然后让程序sleep10s
> 再次从state中获取数据发现数据依旧存在,是广播状态不支持ttl还是我设置的方式不对,有用过的同学吗,还望不吝赐教 谢谢
> >
> >
> >
> > yangpengklf007
> > [hidden email]
> >  <
> https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=yangpengklf007&uid=yangpengklf007%40gmail.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fqiyelogo%2FdefaultAvatar.png&items=%5B%22yangpengklf007%40gmail.com%22%5D
> >
> > 签名由 网易邮箱大师 <https://mail.163.com/dashi/dlpro.html?from=mail81> 定制
>
>
Reply | Threaded
Open this post in threaded view
|

Re: 广播状态是否可以设置ttl过期时间

Yang Peng
In reply to this post by Yun Tang
好的 谢谢茶干老师 我正在验证

Yun Tang <[hidden email]> 于2019年11月7日周四 下午10:11写道:

> Hi
>
> Broadcast State 可以看做一种operator state,只能在DefaultOperatorStateBackend里面创建
> [1],TTL state目前仅是对keyed state来说的 [2]。
>
> [1]
> https://github.com/apache/flink/blob/809533e5b5c686e2d21b64361d22178ccb92ec26/flink-runtime/src/main/java/org/apache/flink/runtime/state/DefaultOperatorStateBackend.java#L149
> [2]
> https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/state/state.html#state-time-to-live-ttl
>
>
>
> On 11/7/19, 8:08 PM, "Dian Fu" <[hidden email]> wrote:
>
>
> 1.8.0之前,ttl保证的是在ttl到达之前,数据不会清空,但是不保证ttl到达之后,数据一定清空。1.8.0之后提供了更完善的功能,可以看一下这个文章:
> https://flink.apache.org/2019/05/19/state-ttl.html <
> https://flink.apache.org/2019/05/19/state-ttl.html>
>     > 在 2019年11月7日,下午3:06,Yang Peng <[hidden email]> 写道:
>     >
>     >
>     >
>     > ---------- Forwarded message ---------
>     > 发件人: yangpengklf007 <[hidden email] <mailto:
> [hidden email]>>
>     > Date: 2019年11月7日周四 下午3:00
>     > Subject: 广播状态是否可以设置ttl过期时间
>     > To: [hidden email] <mailto:[hidden email]> <
> [hidden email] <mailto:[hidden email]>>
>     >
>     >
>     >
> 如下图是我设置得测试代码:在类中定义一个mapstatedesc,然后在processBroadcastElement方法中获取广播数据放入到state中
> 设置ttl是1s然后让程序sleep10s
> 再次从state中获取数据发现数据依旧存在,是广播状态不支持ttl还是我设置的方式不对,有用过的同学吗,还望不吝赐教 谢谢
>     >
>     >
>     >
>     > yangpengklf007
>     > [hidden email]
>     >  <
> https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=yangpengklf007&uid=yangpengklf007%40gmail.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fqiyelogo%2FdefaultAvatar.png&items=%5B%22yangpengklf007%40gmail.com%22%5D
> >
>     > 签名由 网易邮箱大师 <https://mail.163.com/dashi/dlpro.html?from=mail81> 定制
>
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: 广播状态是否可以设置ttl过期时间

Dian Fu
In reply to this post by Yang Peng
是的。不过及时对于keyed state,如果你没有用TTL state这个功能,也是有可能返回过期的state的。

> 在 2019年11月8日,上午10:24,Yang Peng <[hidden email]> 写道:
>
> 嗯嗯,谢谢 付典老师,我理解的是虽然他不会删除但是也不应该返回过期的state值吧,应该是茶干老师说的那样只有keyed state 才支持
> state的ttl吧;
>
> Dian Fu <[hidden email]> 于2019年11月7日周四 下午8:08写道:
>
>>
>> 1.8.0之前,ttl保证的是在ttl到达之前,数据不会清空,但是不保证ttl到达之后,数据一定清空。1.8.0之后提供了更完善的功能,可以看一下这个文章:
>> https://flink.apache.org/2019/05/19/state-ttl.html <
>> https://flink.apache.org/2019/05/19/state-ttl.html>
>>> 在 2019年11月7日,下午3:06,Yang Peng <[hidden email]> 写道:
>>>
>>>
>>>
>>> ---------- Forwarded message ---------
>>> 发件人: yangpengklf007 <[hidden email] <mailto:
>> [hidden email]>>
>>> Date: 2019年11月7日周四 下午3:00
>>> Subject: 广播状态是否可以设置ttl过期时间
>>> To: [hidden email] <mailto:[hidden email]> <
>> [hidden email] <mailto:[hidden email]>>
>>>
>>>
>>>
>> 如下图是我设置得测试代码:在类中定义一个mapstatedesc,然后在processBroadcastElement方法中获取广播数据放入到state中
>> 设置ttl是1s然后让程序sleep10s
>> 再次从state中获取数据发现数据依旧存在,是广播状态不支持ttl还是我设置的方式不对,有用过的同学吗,还望不吝赐教 谢谢
>>>
>>>
>>>
>>> yangpengklf007
>>> [hidden email]
>>> <
>> https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=yangpengklf007&uid=yangpengklf007%40gmail.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fqiyelogo%2FdefaultAvatar.png&items=%5B%22yangpengklf007%40gmail.com%22%5D
>>>
>>> 签名由 网易邮箱大师 <https://mail.163.com/dashi/dlpro.html?from=mail81> 定制
>>
>>

Reply | Threaded
Open this post in threaded view
|

Re: 广播状态是否可以设置ttl过期时间

Yang Peng
哦哦,我目前的做法是在processElement方法里面注册Timer 然后再onTimer方法里面手动删除state中过期的数据;

Dian Fu <[hidden email]> 于2019年11月8日周五 上午10:42写道:

> 是的。不过及时对于keyed state,如果你没有用TTL state这个功能,也是有可能返回过期的state的。
>
> > 在 2019年11月8日,上午10:24,Yang Peng <[hidden email]> 写道:
> >
> > 嗯嗯,谢谢 付典老师,我理解的是虽然他不会删除但是也不应该返回过期的state值吧,应该是茶干老师说的那样只有keyed state 才支持
> > state的ttl吧;
> >
> > Dian Fu <[hidden email]> 于2019年11月7日周四 下午8:08写道:
> >
> >>
> >>
> 1.8.0之前,ttl保证的是在ttl到达之前,数据不会清空,但是不保证ttl到达之后,数据一定清空。1.8.0之后提供了更完善的功能,可以看一下这个文章:
> >> https://flink.apache.org/2019/05/19/state-ttl.html <
> >> https://flink.apache.org/2019/05/19/state-ttl.html>
> >>> 在 2019年11月7日,下午3:06,Yang Peng <[hidden email]> 写道:
> >>>
> >>>
> >>>
> >>> ---------- Forwarded message ---------
> >>> 发件人: yangpengklf007 <[hidden email] <mailto:
> >> [hidden email]>>
> >>> Date: 2019年11月7日周四 下午3:00
> >>> Subject: 广播状态是否可以设置ttl过期时间
> >>> To: [hidden email] <mailto:[hidden email]> <
> >> [hidden email] <mailto:[hidden email]>>
> >>>
> >>>
> >>>
> >>
> 如下图是我设置得测试代码:在类中定义一个mapstatedesc,然后在processBroadcastElement方法中获取广播数据放入到state中
> >> 设置ttl是1s然后让程序sleep10s
> >> 再次从state中获取数据发现数据依旧存在,是广播状态不支持ttl还是我设置的方式不对,有用过的同学吗,还望不吝赐教 谢谢
> >>>
> >>>
> >>>
> >>> yangpengklf007
> >>> [hidden email]
> >>> <
> >>
> https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=yangpengklf007&uid=yangpengklf007%40gmail.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fqiyelogo%2FdefaultAvatar.png&items=%5B%22yangpengklf007%40gmail.com%22%5D
> >>>
> >>> 签名由 网易邮箱大师 <https://mail.163.com/dashi/dlpro.html?from=mail81> 定制
> >>
> >>
>
>