Aeron IPC is more functional than a plain queue but I get your point that it is not a drop in replacement.
The ring buffers are typical queue based semantics and use an 8 byte header in Agrona and Aeron. 4 bytes for message length and 4 bytes for message type to give some flexibility. Fixed format messages can optimise well but have limited applicability. On Friday, 30 March 2018 16:36:09 UTC+1, Roman Leventov wrote: > > Martin, thanks a lot! > > I thought about Aeron IPC, but as far as I understand it maps to the queue > model only when there is a single producer and a single consumer. Also it > felt a little too heavyweight for small fixed-sized messages. Generally > Aeron's Data frames have 32-byte headers. RingBuffers have only 16-byte > headers, and it looks like it could be harmlessly reduced down to 8 or even > 0 for e. g. fixed format 32-byte messages. > > There are implementations of FIFO ring buffers for Java and C++ used in >> Aeron for doing exactly this. >> >> >> https://github.com/real-logic/aeron/tree/master/aeron-client/src/main/cpp/concurrent >> >> >> https://github.com/real-logic/agrona/tree/master/agrona/src/main/java/org/agrona/concurrent >> >> You could also use Aeron IPC. >> >> On Friday, 30 March 2018 09:55:23 UTC+1, Roman Leventov wrote: >>> >>> I think about the possibility of building an asynchronous application >>> with back pressure where some upstream operators are in Java and some >>> downstream ones are in C++. For this purpose, some queues would be needed >>> to pass the data between Java and C++ layers. It seems that porting >>> JCTools's bounded array queues to off-heap should be doable, but I couldn't >>> find existing prototypes or discussions of such thing so maybe I overlook >>> some inherent complications with this idea. >>> >>> Did anybody think about something like this or has implemented in >>> proprietary systems? >>> >> > -- You received this message because you are subscribed to the Google Groups "mechanical-sympathy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
