Code Generation in Serializers and Comparators of Apache Flink
summary
Runtime code generation produces specialized POJO serializers and comparators that remove reflection, avoid boxing, and unroll field loops, delivering up to 6x faster serialization and about 20% end-to-end speedup on real Flink jobs (handwritten POJO serializers earlier gave ~10% and some cases reach ~30%). Generation uses Janino and Freemarker, ships source with a wrapper so remote JVMs recompile, and resolves tricky classloader caching by invalidating caches when user classloaders change.
AI-written summary · about
chapters (12)
- 0:00Intro
- 0:32PARADIGM SHIFT IN BIG DATA FLATFORMS
- 1:30SERIALIZATION IN FUNK
- 5:09SEVERAL SERIALIZER RELATED INNOVATIONS IN APACHE LINK
- 6:05RUNTME CODE GENERATION
- 7:24QUESTIONNAIRE
- 9:24NINE MEN'S MORRIS BENCHMARK
- 14:03HOW DOES THIS WORK
- 20:31LET'S TRY IT OUTI
- 24:58WHAT'S NEXT
- 27:07DISTANT FUTURE
- 28:13CONCLUSION
related talks
39mFlare & Lantern: Accelerators for Spark and Deep Learning
37mGenerating Kotlin Code
54mCode Generation from A to Z
36mDynamically Generated Flink Jobs at Scale
47mHow an Optimizing Compiler Works
16mCompile-Time Java Stream Fusion via mapMulti
42mApache Flink deep-dive #bbuzz
19mIntegrating Flink and Kafka in the standard genomics pipeline
