DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

QuestDB


QuestDB is an open-source SQL database for time series data.

Source Code
https://github.com/questdb/questdb[02]
Developer
Country of Origin
GB
Start Year
2013 [04]
Project Types
Commercial, Open Source
Written in
C++, Java
Supported Languages
C, C++, Go, Java, JavaScript, Python, R, Rust, SQL
Inspired By
Kdb+
Compatible With
InfluxDB, PostgreSQL
Operating Systems
Android, Linux, macOS, Windows
License
Apache v2

It uses a column-oriented approach and supports heavy parallelized vectorized execution using SIMD instructions.

QuestDB implements SQL and augments it for time-series with native extensions. It exposes a Postgres wire protocol, and supports ingestion with InfluxDB Line Protocol.

Database Entry

QuestDB


QuestDB is an open-source SQL database for time series data.

It uses a column-oriented approach and supports heavy parallelized vectorized execution using SIMD instructions.

QuestDB implements SQL and augments it for time-series with native extensions. It exposes a Postgres wire protocol, and supports ingestion with InfluxDB Line Protocol.

History[04][05]


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.

Concurrency Control[06]


QuestDB uses a single writer model. The writer re-orders timestamps on the fly. Multi-publisher, single consumer queue provides concurrent write access.

Data Model[07]


QuestDB uses a relational model with column-based storage model.

Foreign Keys


Hardware Acceleration


SIMD optimised analytics.

Indexes[08]


Indexing is available for symbol columns. Index support for other types will be added over time.

Isolation Levels


Joins[09]


QuestDB supports the following types of joins: INNER, OUTER, CROSS, ASOF and SPLICE. FULL joins are not yet implemented and are on our roadmap. All supported join types can be combined in a single SQL statement.

Logging


Parallel Execution


Multi threaded SQL execution.

Query Compilation


Query Execution[10]


SIMD-based vector execution of queries.

Query Interface[11]


SQL

QuestDB enhances ANSI SQL with time series extensions to manipulate time stamped data.

Storage Architecture[12]


Memory mapped files data access.

Storage Model[07]


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.

Storage Organization


Stored Procedures


System Architecture


Views


Citations

12 sources
  1. QuestDB | Low-latency time-series database on open formats questdb.io
  2. GitHub - questdb/questdb: QuestDB is a high performance, open-source, time-series database · GitHub github.com
  3. QuestDB Documentation - SQL Time-Series Database Guides | QuestDB questdb.com
  4. Initial commit github.com
  5. Launch HN: QuestDB (YC S20) – Fast open source time series database | Hacker News ycombinator.com
  6. Architecture Overview | QuestDB questdb.com
  7. Architecture Overview | QuestDB questdb.com
  8. Indexes | QuestDB questdb.com
  9. JOIN keyword | QuestDB questdb.com
  10. Aggregating billions of rows per second with SIMD | QuestDB questdb.com
  11. https://questdb.com/docs/concept/sql-execution-order questdb.com Dead — Check Archive
  12. Architecture Overview | QuestDB questdb.com
Revision #18