Conversation
…izer # Conflicts: # src/com/esotericsoftware/kryo/serializers/DefaultSerializers.java
|
See #884 for the discussion about |
…izer # Conflicts: # test-jdk14/com/esotericsoftware/kryo/serializers/RecordSerializerTest.java
…izer # Conflicts: # .github/workflows/pr-workflow.yml
…izer # Conflicts: # .github/workflows/pr-workflow.yml
|
Sorry to jump on a PR - let me know if I should post somewhere else. I'm currently looking at serializing records with Kryo with the requirement that I have forward/backward compatibility. I've tested using this branch and it does exactly what I need, so I'd like to know the best way to move forward:
I appreciate any advice on the best way forward |
|
Hi @julianhowarth! Thanks for reaching out and sorry for the late reply.
Can you tell me what kind of tests you performed? One of the main reasons (apart from lack of time) for not moving forward with this PR is that I wasn't sure if it really works in most real world use cases. If you performed realistic tests, that would improve my confidence in these changes.
I would really like to do a release candidate for Kryo 6. The problem is that I'm currently the sole maintainer and my time to work on Kryo is quite limited. Kryo 5 is extremely stable and there hasn't been much demand for a next major release so progress has stalled a bit. If you are really interested in this feature and want to test it in production, I can try to set aside some time and build Kryo 6.0.0.RC1. |
|
Hi, sorry for my late reply
So my application is around video streaming - it's been in production in various guises for 8+ years. Domain classes are things like descriptive text localised for different territories, video source information, image urls, durations of videos, timings of live events, series and seasons of videos etc. In total there are just over 100 classes most of which are Java records. So the primary testing I have performed is that our production dataset (which as a gzipped json file is ~500MB containing ~500,000 video assets) serializes and deserializes with the Kryo snapshot. It does so successfully in 5 - 10s generally. Whilst I have checked simple field addition in the root records, where I think I need to do a bit more is to check that adding fields further down in the nested structure also works as expected, but I can start working on that testing now.
So yes, I'd be very interested in trying out a release candidate as I'm now at the point where I need to work to finish off my serialisation component. |
This is a POC for moving record serialization from
RecordSerializerintoFieldSerializer.This approach has two main advantages:
FieldSerializercan be used for recordsFieldSerializer(Compatible, Versioned, Tagged, ..) can be adjusted for recordsJDK 17+ is required for this PR so it is a likely candidate for the next major version.