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

Database Entry

Kdb+


Kdb+ is a column-based relational time series database (TSDB) with in-memory (IMDB) abilities, developed by Kx Systems. The goal of Kdb+ database is to serve as a central repository to store time series data and support real-time analysis for large amount of data.[04]

Developer
Country of Origin
US
Start Year
1998 [04]
Former Name
kdb
Project Type
Commercial
Supported Languages
C, C#, C++, Go, Java, JavaScript, Lua, Matlab, Perl, PHP, Python, R, Scala
Operating Systems
Linux, macOS, Solaris, Windows
License
Proprietary

Database Entry

Kdb+


Kdb+ is a column-based relational time series database (TSDB) with in-memory (IMDB) abilities, developed by Kx Systems. The goal of Kdb+ database is to serve as a central repository to store time series data and support real-time analysis for large amount of data.[04]

History[04]


Kx Systems originaly released kdb in 1998. It was a database built on the K programming language developed by Arthur Whitney. In 2003, Kx Systems released kdb+ as a 64-bit version of kdb.

Compression[05]


Kdb+ supports compression in following ways:

  • A built-in WebSocket server which supports WebSocket compression standard.

  • In-flight compression between hosts.

  • On-disk compression, which supports 4 algorithms:

  • kdb+ algorithm

  • gzip

  • Google Snappy

  • lzh4c

Concurrency Control[06]


Kdb+ supports for concurrent manipulation of data.

Data Model[06]


Kdb+ uses relational model.

Foreign Keys[06]


Kdb+ supports referential integrity.

Hardware Acceleration[05]


Kdb+ doesn't rely on any hardware acceleration.

Indexes[06]


Kdb+ supports secondary indexes.

Isolation Levels[07]


Kdb+ only supports SERIALIZABLE isolation level.

Joins[05]


Kdb+ supports sql standard joins.

Logging[05]


Kdb+ uses physical logging. When new data comes from sources, in-memory event-engine will log to on-disk log file to ensure durability.

Query Compilation[05]


q is interpreted language.

Query Execution[05][08]


q is vector processing languages.

Query Interface[06]


Kdb+ supports following interfaces:

  • ODBC/JDBC

  • C/C++

  • Java

  • C#

  • Python

  • R

  • Kafka

Storage Architecture[05]


Kdb+ has both in-memory and on-disk storage. New data is held in memory and is flushed to disk at daily basis under control of the event-engine.

Storage Model[04]


Kdb+ uses DSM both for in-memory and on-disk storage.

Stored Procedures[04]


Kdb+ supports UDF.

System Architecture[05]


Kdb+ uses Lambda architecture has the following properties:
- Data currently using stores in memory, while historical data is stored on disk.

  • New data come in from streaming sources.

  • Event-engine distribute data to downstream subscribers, including real-time database engine and streaming query engine.

  • Real-time database projects its content down to on-disk historical database for analytic use at daily basis, controlled by event-engine.

Views[05]


Citations

8 sources
  1. https://kx.com/products.php kx.com Dead — Check Archive
  2. GitHub - KxSystems/kdb: Companion files to kdb+ and q · GitHub github.com
  3. Documentation for KX products - Product documentation kx.com
  4. kdb+ - Wikipedia wikipedia.org
  5. Fintan Quill Engineer, Kx Systems: Time Series Analytics for Streaming Big Fast Data panopto.com
  6. Kdb System Properties db-engines.com
  7. Interfaces | kdb+ and q documentation - kdb+ and q documentation kx.com
  8. Q for Mortals kx.com
Revision #23 Last Updated: