"Aeron: What, Why, and What Next"
Aeron is a new protocol and implementation that is specifically designed to be a blazingly fast and predictable transport protocol for unicast and multicast. In this session, we will explore the design evolution of the Aeron protocol and implementation. What have we learned and been learning as Aeron has been evolving and changing? What current and future problems does Aeron address? And what does the approaches taken by Aeron open up in the future?
5. 1. Why build another Product?
2. What Features are really needed?
3. How does one Design for this?
4. How did things Evolve along the way?
5. What’s Next?
29. Design Principles
1. Garbage free in steady state running
2. Smart Batching in the message path
3. Wait-free algos in the message path
4. Non-blocking IO in the message path
5. No exceptional cases in message path
6. Apply the Single Writer Principle
7. Prefer unshared state
8. Avoid unnecessary data copies
42. Broker Relationship Status: Complicated…
1. Media Driver can be standalone
2. Media Driver can be embedded
3. Core-to-Core memory handoff
43. Broker Relationship Status: Complicated…
1. Media Driver can be standalone
2. Media Driver can be embedded
3. Core-to-Core memory handoff
4. Isolation of protocol logic
109. Some parts of Java are really nice!
Tooling – IDEs, Gradle, HdrHistogram
110. Some parts of Java are really nice!
Tooling – IDEs, Gradle, HdrHistogram
Profiling – Flight Recorder
111. Some parts of Java are really nice!
Tooling – IDEs, Gradle, HdrHistogram
Bytecode Instrumentation
Profiling – Flight Recorder
112. Some parts of Java are really nice!
Tooling – IDEs, Gradle, HdrHistogram
Bytecode Instrumentation
Unsafe!!! + Java 8
Profiling – Flight Recorder
113. Some parts of Java are really nice!
Tooling – IDEs, Gradle, HdrHistogram
Bytecode Instrumentation
Profiling – Flight Recorder
The Optimiser
Unsafe!!! + Java 8
114. Some parts of Java are really nice!
Tooling – IDEs, Gradle, HdrHistogram
Bytecode Instrumentation
Profiling – Flight Recorder
The Optimiser – Love/Hate
Unsafe!!! + Java 8
115. Some parts of Java are really nice!
Tooling – IDEs, Gradle, HdrHistogram
Bytecode Instrumentation
Garbage Collection!!!
Profiling – Flight Recorder
Unsafe!!! + Java 8
The Optimiser – Love/Hate