+1 Sounds like a good idea. On Wed, Oct 4, 2023 at 5:04 PM Gyula Fóra <gyula.f...@gmail.com> wrote:
> I will share my initial implementation soon, it seems to be pretty > straightforward. > > Biggest challenge so far is setting tests so we can still compile against > older versions but have tests for records . But I have working proposal for > that as well. > > Gyula > > On Wed, 4 Oct 2023 at 16:45, Chesnay Schepler <ches...@apache.org> wrote: > > > Kryo isn't required for this; newer versions do support records but we > > want something like a PojoSerializer for records to be performant. > > > > The core challenges are > > a) detecting records during type extraction > > b) ensuring parameters are passed to the constructor in the right order. > > > > From what I remember from my own experiments this shouldn't exactly > > /difficult/, but just a bit tedious to integrate into the Type > > extraction stack. > > > > On 04/10/2023 16:14, Őrhidi Mátyás wrote: > > > +1 This would be great > > > > > > On Wed, Oct 4, 2023 at 7:04 AM Gyula Fóra <gyula.f...@gmail.com> > wrote: > > > > > > Hi All! > > > > > > Flink 1.18 contains experimental Java 17 support but it misses out > > > on Java > > > records which can be one of the nice benefits of actually using > > > newer java > > > versions. > > > > > > There is already a Jira to track this feature [1] but I am not > > > aware of any > > > previous efforts so far. > > > > > > Since records have pretty strong guarantees and many users would > > > probably > > > want to migrate from their POJOs, I think we should enhance the > > > current > > > Pojo TypeInfo/Serializer to accommodate for the records. > > > > > > I experimented with this locally and the changes are not huge as > > > we only > > > need to allow instantiating records through the constructor instead > > of > > > setters. This would mean that the serialization format is basically > > > equivalent to the same non-record pojo, giving us backward > > > compatibility > > > and all the features of the Pojo serializer for basically free. > > > > > > We should make sure to not introduce any performance regression in > > the > > > PojoSerializer but I am happy to open a preview PR if there is > > > interest. > > > > > > There were mentions of upgrading Kryo to support this but I think > > that > > > would add unnecessary complexity. > > > > > > What do you all think? > > > > > > Cheers, > > > Gyula > > > > > > [1] https://issues.apache.org/jira/browse/FLINK-32380 > > > > > >