Tarantool
Tarantool是一個開源的NoSQL資料庫管理系統和Lua應用伺服器。它在主記憶體中維護資料庫,並通過預寫式紀錄檔確保抗崩潰。它包括一個Lua直譯器和互動式控制台,但也接受其他幾種語言程式的連接。
原作者 | Mail.Ru Group |
---|---|
首次發佈 | 2008 |
目前版本 | 2.4.2(2020年7月17日 | )
原始碼庫 | |
程式語言 | C |
作業系統 | Linux, FreeBSD, macOS |
語言 | 英語 |
類型 | NoSQL |
許可協定 | 簡版BSD |
網站 | www |
歷史
編輯Mail.Ru是俄羅斯最大的互聯網公司之一,於2008年啟動該專案,作為Moy Mir(我的世界)社交網絡開發的一部分。2010年,該公司從MySQL公司聘請了一名前技術負責人擔任專案負責人。開源貢獻者一直很活躍,特別是在C、Perl、PHP、Python、Ruby和Node.js的外部語言連接器領域。
Tarantool成為Mail.Ru支柱的一部分,用於動態內容,如用戶對談、未傳送的即時資訊、任務佇列,以及傳統關係型資料庫(如MySQL或PostgreSQL)的快取層。[1] [2]
到2014年,Tarantool還被社交網絡服務Badoo和Odnoklassniki採用(後者自2010年起隸屬於Mail.Ru)。[3][4]
特性
編輯所有數據都儲存在主記憶體(RAM)中,數據的永續性由預寫式紀錄檔和快照來保證,由於這些原因,一些行業觀察家將Tarantool與Membase進行了比較。[5] 複製是非同步的,故障轉移(讓一台Tarantool伺服器接替另一台伺服器)可以從複製伺服器或「熱備」伺服器上進行。
沒有鎖。Tarantool使用Lua風格的coroutines和非同步I/O。其結果是,在編寫應用程式或儲存程序時必須考慮到協同運作式多工,而不是更流行的搶佔式多工。
對於資料庫儲存來說,基本單位是元組。元組中的元組處理的作用與關係型資料庫的表中的行相同,但元組有任意數量的欄位,欄位不需要名稱。資料庫中的每個元組都有一個(唯一的不是空的)主鍵和一個或多個次要鍵,通過索引啟用這些次要鍵進行即時查詢。支援的索引類型有B樹、雜湊、點陣圖和R樹(空間索引)。元組中的欄位是不分類型的,也可以有特定的數字或字串資料類型。如果用戶被授予了相應的權限,可以進行插入、更新、刪除或選擇。[6]
Tarantool在2017年引入了一個可選的磁碟儲存引擎,允許資料庫大於主記憶體大小。[7]
分發
編輯Tarantool是Debian、Fedora或Ubuntu等一些Linux發行版的官方發行版的一部分。[9][10][11] Tarantool組織還為其他Linux發行版、OS X和FreeBSD提供下載。Tarantool可以通過使用LuaRocks安裝的模組進行擴充,它包括自己選擇的擴充rocks。[12]
參考文獻
編輯- ^ Gornyy, Alexander. Tarantool 1.6: NoSQL база данных и application server в одном флаконе. Mail.Ru Group. [2021-04-18]. (原始內容存檔於2017-04-22).
- ^ Osipov, Konstantin. Tarantool persistent in-memory queues. NoSQL matters. [2021-04-18]. (原始內容存檔於2017-03-12).
- ^ Povarov, Anton. Tarantool в Badoo: хранение истории посещений. Badoo Development. [2021-04-18]. (原始內容存檔於2021-04-19).
- ^ DST completes purchase of Odnoklassniki.ru, exits Nasza-Klasa.pl. TechCrunch. 2010-08-31 [2021-04-18]. (原始內容存檔於2021-04-23).
- ^ Popescu, Alex; Bacalu, Ana-Maria. Tarantool/Silverbox: Another In-Memory Key-Value Store from Mail.Ru. MyNoSQL. [2021-04-18]. (原始內容存檔於2014-12-06).
- ^ Tarantool User Guide.
- ^ Storing data with Vinyl. Tarantool. [2021-04-18]. (原始內容存檔於2019-05-10).
- ^ User's Guide / SQL. Tarantool. [2021-04-18]. (原始內容存檔於2019-05-10).
- ^ Package: Tarantool. Debian. [2021-04-18]. (原始內容存檔於2021-04-19).
- ^ Package: tarantool In-memory database with Lua application server. Fedora. [2021-04-18]. (原始內容存檔於2016-12-31).
- ^ Package: tarantool In-memory database with Lua application server. Ubuntu. [2021-04-18]. (原始內容存檔於2021-04-19).
- ^ Tarantool Rocks. Tarantool. [2016-12-30]. (原始內容存檔於2018-05-17).