Tokyo Cabinet is an embedded key-value store written in C
, with native support for C
and C++
and wrapper APIs for other languages. Keys and values are NULL
-terminated strings or arbitrary sequences of bytes, and generally have variable size. Tokyo Cabinet is not a relational database management system; It is a dedicated key-value store similar to LevelDB, RocksDB etc. An application uses a custom non-SQL API to invoke insert, delete, update operations on data and other management functions. In addition, it supports repeatedly appending to a value, characterized as a "concatenate" operation.
Tokyo Cabinet was developed in the late 2000s and improves upon older and simpler data storage libraries such as the Unix dbm
("database manager") and the GNU GDBM
by providing a greater variety of backing data structures and additional API functions.
Tokyo Cabinet is succeeded by a similar key-value store called Kyoto Cabinet.
Naïve (Page-Level) Naïve (Record-Level) Prefix Compression
A Tokyo Cabinet database file is not globally compressed. Compression is done at the record (key and value) level or the page level (for a B+ Tree-based store) using the Burrows–Wheeler transform or the Lempel–Ziv compression algorithm.
Tokyo Cabinet is not a relational database management system; It is a dedicated key-value store. Applications need to use a custom non-SQL API to invoke insert, delete, update operations on data and other management functions.
Tokyo Cabinet also implements a thin "table" abstraction which simulates columns over a key-value store. Schemas and data types are not supported, and therefore, the a Tokyo Cabinet table can contain tuples with a different kind and number of columns. In the table abstraction, a key and a column index (a non-negative integer) together serve as a pointer to a value, unlike a standard key-value record, where only the key serves as such a pointer.
Tokyo Cabinet does not support SQL. Applications need to use a custom non-SQL API to invoke insert, delete, update operations on data and other management functions. In addition, Tokyo Cabinet supports repeatedly appending to a value, characterized as a "concatenate" operation.
Tokyo Cabinet has native support for C
and C++
and wrapper APIs for other languages.
http://fallabs.com/tokyocabinet/
https://fallabs.com/tokyocabinet/
https://fallabs.com/tokyocabinet/spex-en.html
FAL Labs
2006
2012
Sugamo Cabinet
https://en.wikipedia.org/wiki/Tokyo_Cabinet_and_Kyoto_Cabinet