Tarantool

Tarantool是一个开源的NoSQL数据库管理系统和Lua应用服务器。它在内存中维护数据库，并通过预写式日志确保抗崩溃。它包括一个Lua解释器和交互式控制台，但也接受其他几种语言程序的连接。

历史

Mail.Ru是俄罗斯最大的互联网公司之一，于2008年启动该项目，作为Moy Mir（我的世界）社交网络开发的一部分。2010年，该公司从MySQL公司聘请了一名前技术负责人担任项目负责人。开源贡献者一直很活跃，特别是在C、Perl、PHP、Python、Ruby和Node.js的外部语言连接器领域。

Tarantool成为Mail.Ru支柱的一部分，用于动态内容，如用户会话、未发送的即时信息、任务队列，以及传统关系型数据库（如MySQL或PostgreSQL）的缓存层。

到2014年，Tarantool还被社交网络服务Badoo和Odnoklassniki采用（后者自2010年起隶属于Mail.Ru）。

特性

所有数据都保存在内存（RAM）中，数据的持久性由预写式日志和快照来保证，由于这些原因，一些行业观察家将Tarantool与Membase进行了比较。 复制是异步的，故障转移（让一台Tarantool服务器接替另一台服务器）可以从复制服务器或“热备”服务器上进行。

没有锁。Tarantool使用Lua风格的coroutines和異步I/O。其结果是，在编写应用程序或存储过程时必须考虑到协作式多任务，而不是更流行的抢占式多任务。

对于数据库存储来说，基本单位是元组。元组中的元组处理的作用与关系型数据库的表中的行相同，但元组有任意数量的字段，字段不需要名称。数据库中的每个元组都有一个（唯一的不是空的）主键和一个或多个次要键，通过索引启用这些次要键进行即时查询。支持的索引类型有B树、哈希、位图和R树（空间索引）。元组中的字段是不分类型的，也可以有特定的数字或字符串数据类型。如果用户被授予了相应的权限，可以进行插入、更新、删除或选择。

Tarantool在2017年引入了一个可选的磁盘存储引擎，允许数据库大于内存大小。

Tarantool在2019年引入了可选的SQL接口，该接口符合官方SQL标准的大部分必备功能。

分发

Tarantool是Debian、Fedora或Ubuntu等一些Linux发行版的官方发行版的一部分。 Tarantool组织还为其他Linux发行版、OS X和FreeBSD提供下载。Tarantool可以通过使用LuaRocks安装的模块进行扩展，它包括自己选择的扩展rocks。

参考文献

外部链接

開源資料庫管理系統
分散式計算架構
NoSQL
使用BSD许可证的软件