QuestDB

QuestDB is an open-source SQL database designed to process time-series dat. It uses a column-oriented approach, vectorized execution, SIMD instructions.

QuestDB implements SQL, and augments it for time-series. It supports the Postgres and InfluxDB wire protocols,as well as a a REST API. It supports both relational and time-series joins.

History

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.

Query Compilation

JIT Compilation

Hardware Acceleration

Custom

SIMD optimised analytics.

Storage Model

Decomposition Storage Model (Columnar)

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.

Foreign Keys

Not Supported

Parallel Execution

Inter-Operator (Vertical)

Multi threaded SQL execution.

Storage Organization

Log-structured

System Architecture

Shared-Nothing Embedded

Stored Procedures

Not Supported

Storage Architecture

Disk-oriented

Memory mapped files data access.

Joins

Hash Join Semi Join

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.

Query Interface

SQL

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

Logging

Not Supported

Concurrency Control

Timestamp Ordering

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

Indexes

Hash Table

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

Data Model

Relational

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

QuestDB Logo
Website

https://www.questdb.io/

Source Code

https://github.com/questdb/questdb

Tech Docs

https://questdb.io/docs/introduction/

Developer

QuestDB

Country of Origin

GB

Start Year

2013

Project Type

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, OS X, Windows

Licenses

Apache v2