Hi. Any updates on this? How do people usually do TTLs? I want to add a backup TTL in case I have leaky state.
On Wed, Jun 17, 2020 at 6:08 AM Andrey Zagrebin <azagre...@apache.org> wrote: > Hi Arti, > > Any program can use State with TTL but the state can only expire in > processing time at the moment even if you configure event-time > characteristics. > As Congxian mentioned, the event time for TTL is planned. > > The cleanup says that it will not be removed 'by default'. The following > sections [1] describe background cleanup which is not activated 'by > default' in 1.9 but in 1.10. > If you activate the background cleanup, you do not have to read the > expired state to clean it up as if you have those timers you mentioned. > See also the docs for details about background cleanup caveats. > > The timers approach is a valid way but heavy-weight in terms of storage > because Flink will have to create a separate state for timers: > key/timestamp. > The timers approach is not implemented in Flink out-of-the-box at the > moment. It can be implemented in the application as a simple background > cleanup. > > Best, > Andrey > > [1] > https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/stream/state/state.html#cleanup-in-background > > On Wed, Jun 17, 2020 at 3:07 PM Congxian Qiu <qcx978132...@gmail.com> > wrote: > >> Hi >> Currently, Flink does not support event-time TTL state, there is an >> issue[1] tracking this. >> [1] https://issues.apache.org/jira/browse/FLINK-12005 >> Best, >> Congxian >> >> >> Arti Pande <pande.a...@gmail.com> 于2020年6月17日周三 下午7:37写道: >> >>> With Flink 1.9 is state TTL supported for event-time characteristics? This >>> part >>> <https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/stream/state/state.html#state-time-to-live-ttl> >>> of the documentation says that >>> >>> >>> - >>> >>> Only TTLs in reference to *processing time* are currently supported. >>> >>> Does this mean if a program uses event-time characteristics with >>> stateful operators, it can not use TTL ?? >>> >>> Also clean up section >>> <https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/stream/state/state.html#cleanup-of-expired-state> >>> of >>> the documentation says state values that are never read will never be >>> cleared. >>> [image: Screenshot 2020-06-17 at 5.00.41 PM.png] >>> The question is, when processing a stream with unique elements or >>> keys why would Flink framework expect the same key to be read in order for >>> it to be removed after its expiration time ? Why does it not simply clean >>> up the value for that key based on timers automatically without waiting for >>> read operation from user code? >>> >>> Thanks >>> Arti >>> >>