Queue C++ Optimisation on Linux

July 2020

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

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

Want access to exclusive Chronicle content?

The Chronicle Community is now live, hit the button below and join the community, for free! You'll get exclusive access to blogs, guides and video content. Join today!

Want more from Chronicle? Subscribe today!

Something went wrong. Please check your entries and try again.