How we built inter-thread messaging from scratch
Blog post from QuestDB
QuestDB is an open-source time-series database designed for high-performance workloads, offering ultra-low latency, high ingestion throughput, and a multi-tier storage engine with native support for Parquet and SQL, eliminating vendor lock-in. The database features a custom-built, asynchronous inter-thread messaging system inspired by the Disruptor model, utilizing a RingQueue structure for efficient data handling across multiple threads. This system allows for flexible sequence graph creation, supporting both single and multi-threaded operations, with the ability to dynamically subscribe and unsubscribe sequences to optimize data processing. Performance benchmarks indicate that QuestDB's messaging system competes closely with the Disruptor, demonstrating its capability in handling demanding applications while maintaining efficiency. The messaging system is part of QuestDB's package available on Maven Central, with the database itself being lightweight with no additional dependencies.