Tarantol - Tarantool
Pierwotny autor (autorzy) | Grupa Mail.Ru |
---|---|
Pierwsze wydanie | 2008 |
Wersja stabilna | 2.7.2 / 21 kwietnia 2021
|
Magazyn | |
Napisane w | do |
System operacyjny | Linux , FreeBSD , macOS |
Dostępne w | język angielski |
Rodzaj | NoSQL |
Licencja | Uproszczony BSD |
Stronie internetowej | www |
Tarantool to platforma obliczeniowa w pamięci z elastycznym schematem danych, która najlepiej nadaje się do tworzenia aplikacji o wysokiej wydajności. Dwie główne części to baza danych w pamięci i serwer aplikacji Lua .
Tarantool utrzymuje dane w pamięci i zapewnia odporność na awarie dzięki zapisywaniu z wyprzedzeniem i robieniu migawek . Zawiera interpreter Lua i interaktywną konsolę, ale akceptuje również połączenia z programów w kilku innych językach.
Historia
Mail.Ru, jedna z największych firm internetowych w Rosji, rozpoczęła projekt w 2008 roku w ramach rozwoju sieci społecznościowej Moy Mir (My World). W 2010 roku na kierownika projektu zatrudniła byłego kierownika technicznego z MySQL . Współtwórcy oprogramowania open source byli aktywni zwłaszcza w obszarze łączników języka zewnętrznego dla C , Perl , PHP , Python , Ruby i node.js
Tarantool stał się częścią szkieletu Mail.Ru, używanego do dynamicznej zawartości, takiej jak sesje użytkowników, niewysłane wiadomości błyskawiczne, kolejki zadań i warstwa pamięci podręcznej dla tradycyjnych relacyjnych baz danych, takich jak MySQL czy PostgreSQL.
Do 2014 roku Tarantool został również przyjęty przez serwisy społecznościowe Badoo i Odnoklassniki (ten ostatni jest powiązany z Mail.Ru od 2010 roku).
Nieruchomości
Wszystkie dane są przechowywane w pamięci (RAM), a trwałość danych jest gwarantowana przez rejestrowanie z wyprzedzeniem i tworzenie migawek. Z tych powodów niektórzy obserwatorzy branżowi porównali Tarantool z Membase .
Replikacja jest asynchroniczna, a przełączanie awaryjne (przejęcie jednego serwera Tarantool przez inny) jest możliwe albo z serwera repliki, albo z serwera „hot standby”.
Nie ma zamków. Tarantool używa coroutines w stylu Lua i asynchronicznych operacji we / wy . W rezultacie aplikacje lub procedury składowane muszą być pisane z myślą o wielozadaniowości opartej na współpracy , a nie o bardziej popularnej wielozadaniowości z wywłaszczaniem.
W przypadku przechowywania bazy danych podstawową jednostką jest krotka . Krotki w zestawach krotek pełnią tę samą rolę, co wiersze w tabelach dla relacyjnych baz danych. Krotki mają dowolną liczbę pól, a pola nie wymagają nazw. Każda krotka w bazie danych ma jeden (unikalny, nie null) klucz podstawowy i jeden lub więcej kluczy pomocniczych, które są włączone do natychmiastowego wyszukiwania za pomocą indeksów. Obsługiwane typy indeksów to B-tree , hash, bitmap i R-tree (przestrzenne).
Pola w krotce są niezależne od typu lub mogą mieć określone typy danych liczbowych lub łańcuchowych. Użytkownicy mogą wstawiać, aktualizować, usuwać lub wybierać, jeśli otrzymali odpowiednie uprawnienia.
W 2017 roku Tarantool wprowadził opcjonalny silnik przechowywania na dysku , który umożliwia tworzenie baz danych większych niż rozmiar pamięci.
W 2019 roku Tarantool wprowadził opcjonalny interfejs SQL , który jest zgodny z większością obowiązkowych funkcji oficjalnego standardu SQL.
Dystrybucja
Tarantool jest częścią oficjalnych dystrybucji niektórych dystrybucji Linuksa, takich jak Debian , Fedora czy Ubuntu . Organizacja Tarantool dostarcza również pliki do pobrania dla innych dystrybucji Linuksa, OS X i FreeBSD. Tarantool może być rozszerzony o moduły instalowane za pomocą LuaRocks i zawiera własny wybór skał przedłużających.