quasardb

QuasarDB is a high-performance, distributed, column-oriented database with native time series support. Transfers, computations, and aggregations are so fast that analysts can work interactively on their data, regardless of the amount stored.

History

The origins of this can be traced back to a project started by the founder in 2009 when he thought of applying the techniques that he learned from kernel programming to a database. The preliminary performance results were really surprising with the performance of the prototype beating all the other key-value stores that could be tested at that time.

The project kept growing into a much bigger one with more features until it evolved into the current day database that is quasardb.

Stored Procedures

Not Supported

quasardb interface is not in SQL and so it does not support stored procedures.

Concurrency Control

Multi-version Concurrency Control (MVCC) Two-Phase Locking (Deadlock Prevention)

If two transactions attempt to write to the same entry, the first transaction to operate on the entry wins and the other transaction is canceled. When a transaction writes to an entry, other transactions may access the previous value of the entry.

Storage Model

Decomposition Storage Model (Columnar)

QuasarDB is a column-oriented time series database. The time series are column oriented and can have an arbitrary number of columns, each column has an unique name.

Indexes

Not Supported

Data Model

Key/Value

quasardb is a distributed key-value store technology.

Checkpoints

Non-Blocking

System Architecture

Shared-Nothing

The data is stored on multiple nodes that are linked together into a cluster. This is a peer-to-peer distributed hash table based on Chord in which the nodes self-organize to share data and handle client requests.

Query Compilation

Not Supported

Query Interface

Custom API

quasardb supports a rich set of APIs in various languages. Currently, APIs are supported in C, C++, Go, Hadoop integration, Java, .NET, Node.js, PHP, Python, REST API, Spark connector. The timeseries data can be searched using a syntax similar to a regular SQL query:

Isolation Levels

Repeatable Read

Transactions in quasardb are snapshot based and provide repeatable reads.

Storage Architecture

In-Memory

Entries are often kept resident in a write cache so the daemon can rapidly serve a large amount of simultaneous requests. When a user adds or updates an entry on the cluster the entry’s value may not be synced to the disk immediately. However, quasardb guarantees the data is consistent at all times, even in case of hardware or software failure.

quasardb Logo
Website

https://quasardb.net/

Tech Docs

https://doc.quasardb.net/

Developer

quasardb SAS

Country of Origin

FR

Start Year

2008

Project Type

Commercial

Written in

C++

Supported languages

C, C++, Go, Java, PHP, Python

Operating Systems

BSD, Linux, OS X, Windows

Licenses

Proprietary