3 ms·
> CoralBlocks in the low-latency trading domain previously. Yeah, modern JVM is a true miracle and you can be x5 productive (and safe!) compared to C/C++ Do y
by algo_trader 2y ago
> CoralBlocks in the low-latency trading domain previously.
Yeah, modern JVM is a true miracle and you can be x5 productive (and safe!) compared to C/C++
Do you have any recommendations for a low latency work queue (with in a jvm)?
I want to spawn millions of micro-second-tasks per second, to worker cores..
I am on a massive cache CPU so memory latency hasnt raised its ugly head yet
EDIT: not LMAX please...
- jffhn 2y ago>any recommendations for a low latency work queue (with in a jvm)? I toyed around the ring buffer pattern a decade ago, creating a unicast one (using CAS on entries, and eventually a logarithmic scan for next readable entry, not to brute-force-scan them all), but I'm not sure that its latency is much better than that of a regular ThreadPoolExecutor (the throughput could be better though). Latency also depends on whether it spins or blocks when waiting for a slot to read or write. If you want to give it a try: https://github.com/jeffhain/jodk/blob/master/src/net/jodk/threading/ringbuffers/UnicastRingBuffer.java https://github.com/jeffhain/jodk/blob/master/src/net/jodk/th...
- pacoverdi 2y agoYou may find https://jctools.github.io/JCTools/ https://jctools.github.io/JCTools/ interesting
- joas_coder 2y agoI think you can take a look at the DiamondQueue, which is a Demultiplexer and a Multiplexer combined so that thread A dispatches a bunch of tasks to a fixed set of worker threads (W1, W2, W3, etc.) and then these worker threads use a Multiplexer to deliver the results to another thread B. Thread A and Thread B can also be the same thread. There is an example here => https://www.coralblocks.com/index.php/the-diamond-queue-demultiplexer-to-set-of-threads-to-multiplexer/ https://www.coralblocks.com/index.php/the-diamond-queue-demu... The DiamondQueue should be soon available for free at the CoralQueue project on GitHub.
- joas_coder 2y agoYou were interested in the diamond queue, so just wanted to say that it is now released in our GitHub => https://github.com/coralblocks/CoralQueue?tab=readme-ov-file#diamond https://github.com/coralblocks/CoralQueue?tab=readme-ov-file...