Tarantool是一個開源NoSQL數據庫管理系統和Lua應用服務器。它在內存中維護數據庫,並通過預寫式日誌確保抗崩潰。它包括一個Lua解釋器和交互式控制台,但也接受其他幾種語言程序的連接。

Tarantool
原作者Mail.Ru Group
首次發布2008
當前版本2.4.2(2020年7月17日 (2020-07-17)
源代碼庫 編輯維基數據鏈接
編程語言C
操作系統Linux, FreeBSD, macOS
語言英語
類型NoSQL
許可協議簡版BSD
網站www.tarantool.io

歷史

編輯

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). 

外部連結

編輯