JNI has a bad reputation for performance. We changed that. How? We pass only primitives and memory addresses, not objects. Thanks to off-heap memory, we avoid: Object marshalling GC coordination Unnecessary copying The result: native-speed I/O, from Java. #JNI #NativeInterop #Performance #QuestDB #LowLatencyJava #Database
It seems like this becoming a pattern, it just makes so much sense when using something like Arrow. I noticed Datafusion Comet works exactly the same way.
Is the query parser + planner in java and then the actual operators are native ?. Is there still a significant benefit to having that frontend in Java ?
Surprisingly obvious solution that not many have been doing despite almost everyone doing offheap memory already.
It's incredible what you guys have achieved using Java! Well done Vlad & Nicolas!