QuestDB is a high performance open source SQL database for time series data.
It uses a column-oriented approach, heavy parallelized vectorized execution, SIMD instructions and a whole array of low-latency techniques. The whole code base is built from scratch, without dependencies and 100% free from garbage collection.
QuestDB implements SQL and augments it for time-series with native extensions. It exposes a Postgres wire protocol, high-performance REST API and supports ingestion with InfluxDB Line Protocol. QuestDB uses a relational model and can be both shema or schema-free through InfluxDB Line Protocol. Relational and time-series joins make it easy to correlate data over time. Writes are durably committed to disk, meaning that the data is safe - yet instantly accessible.
QuestDB started as a side project in 2013 by Vlad Ilyushchenko who applied principles from low latency techniques found in the financial services industry. QuestDB is backed by YCombinator.
QuestDB uses a column-based storage model. Data is stored in tables with each column stored in its own file and its own native format. New data is appended to the bottom of each column to allow data to be organically retrieved in the same order that it was ingested.
QuestDB enhances ANSI SQL with time series extensions to manipulate time stamped data.
SIMD optimised analytics.
SIMD-based vector execution of queries.
Memory mapped files data access.
QuestDB uses a single writer model. The writer re-orders timestamps on the fly. Multi-publisher, single consumer queue provides concurrent write access.
Multi threaded SQL execution.