Overview
Aeron Transport Selector enables applications to enter a ‘sleep’ mode when no messages are pending, saving CPU cycles and enhancing efficiency by performing blocking reads on a set of subscriptions within a specified timeout. This feature is particularly beneficial for applications with low data rates, as it reduces unnecessary CPU usage and optimizes resource management.
Key Features
- Save CPU Cycles: Eliminates the need for constant CPU polling by allowing applications to sleep when no messages are pending.
- Enhanced Efficiency: Improves data processing efficiency by performing reads on subscriptions within a specified timeout.
- Resource Management: Offers a tailored approach to managing resources, making it cost-effective for low-activity applications.
Technical Details
- Usage Assumptions and Restrictions: All subscriptions within an Aeron client instance use the same Aeron Selector, with a 1:1 mapping between client and selector instances. The Aeron Selector is not thread-safe and may introduce some latency.
- Components: The AeronSelector consists of two major components:
- AeronSelector Daemon: A single-threaded application daemon that uses the Aeron C API to determine if subscriptions and images have data to read.
- AeronSelector API: A language-specific API for interacting with the AeronSelector daemon to determine whether data is ready to be read and processed.
Operational Considerations
- Availability: Available as an Aeron Premium feature.
- Compatibility: Supported in the Aeron C and Java driver, and compatible with Linux (Ubuntu, RedHat). Supports C/C++ and Java clients.
Datasheet
For a detailed overview of Aeron Transport Selector, download the datasheet: