Tarantool

      Tarantool
      Initial release 2008
      Stable release 1.4.9 / April 8, 2013 (2013-04-08)
      Development status Active
      Written in Objective C
      Operating system Linux, FreeBSD, Mac OS X
      Available in English
      Type NoSQL database
      License Simplified BSD
      Website tarantool.org

      Tarantool is an open-source NoSQL database and messaging server, developed by Mail.ru.

      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.

      Supported languages

      Tarantool bindings exist in C, Lua, Perl, PHP, Python, Ruby, node.js.

      ↑Jump back a section

      Data model

      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.

      ↑Jump back a section

      History

      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.

      ↑Jump back a section
      Last modified on 15 May 2013, at 12:03