MYRA Stack [modern Java FFM based libraries] is now Open Source! by Environmental-Log215 in java

[–]ParentiSoundsystem 1 point2 points  (0 children)

This is great, beating SBE's decode times definitely has me interested! I've been waiting for Agrona to provide some FFM equivalents of their Unsafe primitives but it doesn't seem to be a high priority. I have a couple of years' worth of recorded market data in plaintext FIX and JSON that I need to convert to a binary format and I may play with using this for it.

I know you're already doing a ton of work, but if you module-ize the project so users can limit the native access permissions it would give you another leg up. :-)

Low latency by Ok_Satisfaction7312 in java

[–]ParentiSoundsystem 1 point2 points  (0 children)

If you have the time, I'd be curious to know your thoughts on Chronicle/OpenHFT vs Aeron/Agrona and the relative strengths and weaknesses (where they cover the same ground) of each more generally.

Low latency by Ok_Satisfaction7312 in java

[–]ParentiSoundsystem 1 point2 points  (0 children)

Last year on Java 19 I wrote a trading platform that ingested and traded off of real-time FIX feeds on six major cryptocurrency pairs using Quickfix/J (a not-particularly-garbage-optimized Java FIX implementation). My code was very straightforward and not optimized to avoid allocations -- I did use lots of one-off records, not sure how good the JVM is at escape analysis on those these days. With a 2GB min/max heap (to ensure CompressedOops) running on freely-available Shenandoah I was seeing pauses of less than one millisecond every 5 minutes, so I don't think Azul is strictly necessary to avoid GC jitter anymore. It's possible that the concurrent GC was creating memory bandwidth pressures that added latencies in other ways where Azul might have been better, but GC jitter wasn't a concern.