Fork me on GitHub

trying to build an xtdb native image, but it seems reflection needs to be accounted for. references a graal_reflectconfig.json, is that available anywhere?


I can dig through the archives next week, but it's likely to be well out of date. Nobody at our end has run the script in a very long time and Graal has been a moving target since I believe 🙂


that's a shame, I think native image would be very helpful for a hosted XTDB. I think it should be doable, but I don't want to be the one to facecheck it!


Our testing at the time suggested that the native image build could only really be useful for faster cold-start, time-to-first-query usage, and overall performance/throughput was a bit lower ...which is roughly what I had expected based on everything I'd read, but maybe the situation is different now(?)


A quick Google suggests that the reflectconfig file is generated by the native-image-agent - have you tried that?


I did find that, currently stuck with

Fatal error:$HostedError:$HostedError: Registering type as reachable after analysis: AnalysisType<java.nio.file.WatchEvent$Kind[], allocated: false, inHeap: false, reachable: false>  at  at  at  at  at  at  at$JDK9Plus.main(


the main benefits are much less RSS and smaller container image


if we're handing out free XTDB instances, probably couldn't afford more than 128-256mb so that becomes critical


That's a bummer! Can't help you there :/ And yep, hosting efficiency at small scale is a valid use case too. Good point 👍


XTaaS definitely isn't out of the question for us at some point 🙂

👍 2

hah, it may be closer on my roadmap than yours! I'll look at datalevin for now since it already supports native image

refset10:05:05 I'm very intrigued!


Out of interest, were you hoping to stick with xtdb-lmdb? Or would you make do if only xtdb-rocksdb was supported with native image?


just rocksdb -- I'm having a lot of fun with my infra framework, which has exceeded all my expectations so I'm looking to flex my muscles a bit 🙂

🌞 1

I am also interested in this for the small container size and low memory use-case. If y'all are able to get something working (I don't particularly care which backend) I'd be happy to hear about it. 🙂

📝 1
👍 1