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.
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.
Kdb+ supports following interfaces: - ODBC/JDBC - C/C++ - Java - C# - Python - R - Kafka
Kdb+ uses physical logging. When new data comes from sources, in-memory event-engine will log to on-disk log file to ensure durability.
Kdb+ only supports SERIALIZABLE isolation level.
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.
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.
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
No hardware acceleration.
First Derivatives plc