You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@flink.apache.org by Alexey Trenikhun <ye...@msn.com> on 2018/08/13 20:58:44 UTC

Managed Keyed state update

Let’s say I have Managed Keyed state - MapState<String,Tuple2<String,String>> x, I initialize for state for “k0” - x.put(“k0”, new Tuple2<>(“a”, “b”));
Later  I retried state Tuple2<String,String> v = x.get(“k0”); and change value: v.f0=“U”;, does it make state ‘dirty’? In other words, do I need to call x.put(“k0”, v) again or change will be saved by checkpoint anyway because value was changed?

Alexey

Re: Managed Keyed state update

Posted by Fabian Hueske <fh...@gmail.com>.
Hi,

It is recommended to always call update().

State modifications by modifying objects is only possible because the heap
based backends do not serialize or copy records to avoid additional costs.
Hence, this is rather a side effect than a provided API. As soon as you
change the state backend, state modifications might be lost if you do not
call update().

Best, Fabian

2018-08-14 2:07 GMT+02:00 Alexey Trenikhun <ye...@msn.com>:

> Clear. Thank you
>
> Get Outlook for iOS <https://aka.ms/o0ukef>
>
> ------------------------------
> *From:* Renjie Liu <li...@gmail.com>
> *Sent:* Monday, August 13, 2018 4:33 PM
> *To:* Alexey Trenikhun
> *Cc:* user@flink.apache.org
> *Subject:* Re: Managed Keyed state update
>
> Hi, Alexey:
> It depends on the state backend you use. If you use heap memory backend,
> then you don't need to do put again.
> However, if you use rocksdb state backend, then you need to do the put
> again so that it will be saved by the checkpoint.
>
> On Tue, Aug 14, 2018 at 4:58 AM Alexey Trenikhun <ye...@msn.com> wrote:
>
>> Let’s say I have Managed Keyed state - MapState<String,Tuple2<String,String>>
>> x, I initialize for state for “k0” - x.put(“k0”, new Tuple2<>(“a”, “b”));
>> Later  I retried state Tuple2<String,String> v = x.get(“k0”); and change
>> value: v.f0=“U”;, does it make state ‘dirty’? In other words, do I need to
>> call x.put(“k0”, v) again or change will be saved by checkpoint anyway
>> because value was changed?
>>
>> Alexey
>>
> --
> Liu, Renjie
> Software Engineer, MVAD
>

Re: Managed Keyed state update

Posted by Alexey Trenikhun <ye...@msn.com>.
Clear. Thank you

Get Outlook for iOS<https://aka.ms/o0ukef>

________________________________
From: Renjie Liu <li...@gmail.com>
Sent: Monday, August 13, 2018 4:33 PM
To: Alexey Trenikhun
Cc: user@flink.apache.org
Subject: Re: Managed Keyed state update

Hi, Alexey:
It depends on the state backend you use. If you use heap memory backend, then you don't need to do put again.
However, if you use rocksdb state backend, then you need to do the put again so that it will be saved by the checkpoint.

On Tue, Aug 14, 2018 at 4:58 AM Alexey Trenikhun <ye...@msn.com>> wrote:
Let’s say I have Managed Keyed state - MapState<String,Tuple2<String,String>> x, I initialize for state for “k0” - x.put(“k0”, new Tuple2<>(“a”, “b”));
Later  I retried state Tuple2<String,String> v = x.get(“k0”); and change value: v.f0=“U”;, does it make state ‘dirty’? In other words, do I need to call x.put(“k0”, v) again or change will be saved by checkpoint anyway because value was changed?

Alexey
--
Liu, Renjie
Software Engineer, MVAD

Re: Managed Keyed state update

Posted by Renjie Liu <li...@gmail.com>.
Hi, Alexey:
It depends on the state backend you use. If you use heap memory backend,
then you don't need to do put again.
However, if you use rocksdb state backend, then you need to do the put
again so that it will be saved by the checkpoint.

On Tue, Aug 14, 2018 at 4:58 AM Alexey Trenikhun <ye...@msn.com> wrote:

> Let’s say I have Managed Keyed state -
> MapState<String,Tuple2<String,String>> x, I initialize for state for “k0” -
> x.put(“k0”, new Tuple2<>(“a”, “b”));
> Later  I retried state Tuple2<String,String> v = x.get(“k0”); and change
> value: v.f0=“U”;, does it make state ‘dirty’? In other words, do I need to
> call x.put(“k0”, v) again or change will be saved by checkpoint anyway
> because value was changed?
>
> Alexey
>
-- 
Liu, Renjie
Software Engineer, MVAD