Queue C++ Optimisation on Linux

Benchmarks have a natural lifespan that can be improved with more modern hardware. This benchmark was performed on July 13, 2020. Please don’t hesitate to contact us if you have questions about how Chronicle Queue C++ will perform today.

Our development team have been working on improving the performance of Chronicle Queue C++ by optimising how we work with some features in the Linux mmap. Linux mmap supports a MAP_POPULATE option which prefaults page tables on initial mapping, working with this function has allowed us to show improved control across all percentiles and particularly at the higher percentile.

The benchmark below measures end to end write-read data between 2 processes sharing a 256MB block size queue with 2 million messages written at a rate of 100,000 messages per second for message sizes ranging between 8 to 4096 bytes. The work has been done to ensure that the outliers do not have a significant impact on client applications and we can see that even at the 99.999% percentile Chronicle Queue C++ is still delivering in under 2us

queue c++ end-to-end latencies

queue c++ end-to-end latencies

The tests were run on a 2×12 core, E5-2650 v4 @ 2.2GHz, with 128GB memory and cpu isolation

Andrew Twigg

Subscribe to Our Newsletter

Featured Products

Data Processing

Chronicle Queue Enterprise

Persisted messaging framework that handles massive throughput. Delivers superior control of outliers, and replicates easily across hosts.