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: