Tarantool

维基百科,自由的百科全书
跳转到导航 跳转到搜索
Tarantool
原作者Mail.Ru Group
首次发布2008
当前版本2.4.2(2020年7月17日 (2020-07-17)
源代码库
  • {{URL|example.com|可选的显示文本}}
Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
编程语言C
引擎
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    操作系统Linux, FreeBSD, macOS
    语言英语
    类型NoSQL
    许可协议简版BSD
    网站www.tarantool.io

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

    历史[编辑]

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

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

    到2014年,Tarantool还被社交网络服务BadooOdnoklassniki采用(后者自2010年起隶属于Mail.Ru)。[3][4]

    特性[编辑]

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

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

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

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

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

    分发[编辑]

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

    参考文献[编辑]

    1. ^ Gornyy, Alexander. Tarantool 1.6: NoSQL база данных и application server в одном флаконе. Mail.Ru Group. [2021-04-18]. (原始内容存档于2017-04-22). 
    2. ^ Osipov, Konstantin. Tarantool persistent in-memory queues. NoSQL matters. [2021-04-18]. (原始内容存档于2017-03-12). 
    3. ^ Povarov, Anton. Tarantool в Badoo: хранение истории посещений. Badoo Development. [2021-04-18]. (原始内容存档于2021-04-19). 
    4. ^ DST completes purchase of Odnoklassniki.ru, exits Nasza-Klasa.pl. TechCrunch. 2010-08-31 [2021-04-18]. (原始内容存档于2021-04-23). 
    5. ^ Popescu, Alex; Bacalu, Ana-Maria. Tarantool/Silverbox: Another In-Memory Key-Value Store from Mail.Ru. MyNoSQL. [2021-04-18]. (原始内容存档于2014-12-06). 
    6. ^ Tarantool User Guide. 
    7. ^ Storing data with Vinyl. Tarantool. [2021-04-18]. (原始内容存档于2019-05-10). 
    8. ^ User's Guide / SQL. Tarantool. [2021-04-18]. (原始内容存档于2019-05-10). 
    9. ^ Package: Tarantool. Debian. [2021-04-18]. (原始内容存档于2021-04-19). 
    10. ^ Package: tarantool In-memory database with Lua application server. Fedora. [2021-04-18]. (原始内容存档于2016-12-31). 
    11. ^ Package: tarantool In-memory database with Lua application server. Ubuntu. [2021-04-18]. (原始内容存档于2021-04-19). 
    12. ^ Tarantool Rocks. Tarantool. [2016-12-30]. (原始内容存档于2018-05-17). 

    外部链接[编辑]