InfoQ Homepage Presentations Aeron: The Next Generation in High-performance Messaging
Aeron: The Next Generation in High-performance Messaging
Summary
Martin Thompson focuses on the design of Aeron and what they learned trying to achieve very consistent performance. He explores the challenges of dealing with reliable message delivery over UDP and the data structures necessary to support transmission and retransmission in a lock-free and wait-free manner.
Bio
Martin Thompson is a high-performance and low-latency specialist, with experience gained over two decades working on large scale transactional and big-data systems. He believes in Mechanical Sympathy, i.e. applying an understanding of the hardware to the creation of software as being fundamental to delivering elegant high-performance solutions.
About the conference
Software is Changing the World. QCon empowers software development by facilitating the spread of knowledge and innovation in the developer community. A practitioner-driven conference, QCon is designed for technical team leads, architects, engineering directors, and project managers who influence innovation in their teams.
Community comments
A doubt about the log buffer structure
by Bharath Ghanta,
Re: A doubt about the log buffer structure
by Martin Thompson,
What about SCTP?
by Giscard Faria,
Re: What about SCTP?
by Martin Thompson,
pub/sub only?
by Peter Taylor,
A doubt about the log buffer structure
by Bharath Ghanta,
Your message is awaiting moderation. Thank you for participating in the discussion.
So, if a 2nd thread tries to write to the log buffer active region and it crosses the end of the region, its responsibility is to copy padding and rotate.
But what happens if a 3rd thread wants to write at the same time a thread is rotating the region?
Re: A doubt about the log buffer structure
by Martin Thompson,
Your message is awaiting moderation. Thank you for participating in the discussion.
If a 3rd, or more, thread increments the tail concurrently when past end of the buffer they can see from the tail that they are not responsible for the rotation. They simple fail to offer and can retry at their leisure by which time it is likely rotated and they are in the next term.
github.com/real-logic/Aeron/blob/master/aeron-c...
You can also look at the tests for examples.
What about SCTP?
by Giscard Faria,
Your message is awaiting moderation. Thank you for participating in the discussion.
Quite impressive the work.... However I did not understand why spending so much time on developing a reliable protocol based on UDP when muti streams can be reached using standards like SCTP, which were created just to find the midpath between TCP and UDP.
Re: What about SCTP?
by Martin Thompson,
Your message is awaiting moderation. Thank you for participating in the discussion.
That is a good question. There are a number of reasons. The three primary ones are having support for multicast which is critical to disseminating the likes of financial market data, the need for being message oriented rather than byte oriented streams, and the ability to go over multiple media especially including shared memory on box and Infiniband networks.
pub/sub only?
by Peter Taylor,
Your message is awaiting moderation. Thank you for participating in the discussion.
do you support inboxing like TIBRV does (where a temporary topic can be used to send point-to-point messages)?