flink-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chesnay Schepler <ches...@apache.org>
Subject Re: POJO serialization vs immutability
Date Mon, 07 Oct 2019 11:37:46 GMT
This question should only be relevant for cases where POJOs are used as 
keys, in which case they /must not/ return a class-constant nor 
effectively-random value, as this would break the hash partitioning.

This is somewhat alluded to in the keyBy() documentation 

but could be clarified.

It is in any case heavily discouraged to modify objects after they have 
been emitted from a function; the mutability of POJOs is hence usually 
not a problem.

On 02/10/2019 14:17, Stephen Connolly wrote:
> I notice 
> https://ci.apache.org/projects/flink/flink-docs-stable/dev/types_serialization.html#rules-for-pojo-types

> says that all non-transient fields need a setter.
> That means that the fields cannot be final.
> That means that the hashCode() should probably just return a constant 
> value (otherwise an object could be mutated and then lost from a 
> hash-based collection.
> Is it really the case that we have to either register a serializer or 
> abandon immutability and consequently force hashCode to be a constant 
> value?
> What are the recommended implementation patterns for the POJOs used in 
> a topology
> Thanks
> -Stephen

View raw message