Any ideas on the standard way ( or any roundabout way ) of doing a version
upgrade that looks back ward compatible.
The  @FieldSerializer.Optional("0") actually does  ignore the field ( even
if reset ) giving it the default value if kyro is used. It has to do with
the FieldSerializer behaves  .  There is another Serializer ( Composite I
believe ) that allows for such back ward compatible changes.


I know some work is being done in 1.6 to allow for above use case and I
think Google Data Flow does provide some avenues.

Thanks much

Vishal



On Tue, Jun 12, 2018 at 11:30 PM, Vishal Santoshi <vishal.santo...@gmail.com
> wrote:

> I have a running pipe with Window State in a class say
>
> Class A{
>      long a;
> }
>
> It uses the default KryoSerializer
>
> I want to add a field to
>
> Class A {
>   long a;
>   long b;
> }
>
> I need to suspend with SP and resume with the new version of Class A
>
>
> Is there a definite way to do this. I tried
>
> Class A {
>   long a;
>    @FieldSerializer.Optional("0")
>   long b;
> }
>
> but that seems to default to 0 , even when the Aggregation is putting in
> values.
>
> Could somebody give pointers as to how to solve this
>
> Thanks a ton.
>
>
>
>

Reply via email to