|Stable release||1.5.2 / December 6, 2013|
|Written in||C (programming language)|
|Operating system||Linux, FreeBSD, Mac OS X|
Its key properties include:
- all data is maintained in RAM
- data persistence is implemented using a Write Ahead Log and snapshotting
- supports asynchronous replication and hot standby
- uses coroutines and asynchronous I/O to implement high-performance lock-free access to data
- available on Linux, FreeBSD, Mac OS X
- stored procedures in Lua provide high level of customization. In particular, the message queuing API is a set of stored procedures running on top of the basic functions to store, modify and retrieve tuples.
The basic unit of storage in Tarantool is a called a tuple. A tuple can have an arbitrary number of fields. The first field in a tuple is always the unique identifying key. Tuples form spaces. Tuples in spaces can be looked up using the primary key, any of the secondary keys, or part of a composite key. Binary tree, hash and bitmap indexes are supported. Fields in a tuple are type-agnostic. For fields within a tuple, add, remove and delete operations are supported.
The project started in 2008 as a MySQL replacement, after all open source alternatives proved to be insufficiently stable or lacking critical functionality. Since then, Tarantool became the core part of Mail.ru backbone, used for dynamic content, such as user sessions, unsent instant messages, task queues, and also as a caching layer for traditional relational databases.
- Slides from NoSQL Matters! Cologne 2012
- Video from NoSQL Matters! Cologne 2013