Dostępna jest nowa wersja systemu zarządzania bazą danych Tarantool 2.8, która zapewnia stałe przechowywanie danych z dostępem do informacji z pamięci operacyjnej (baza danych in-memory). System łączy wysoką prędkość przetwarzania zapytań, charakterystyczną dla systemów NoSQL (takich jak Memcached i Redis), z niezawodnością tradycyjnych systemów baz danych (Oracle, MySQL i PostgreSQL). Tarantool jest napisany w języku C i umożliwia tworzenie procedur składowanych w języku Lua. Kod jest rozpowszechniany na licencji BSD.
System baz danych pozwala na efektywne zarządzanie dużymi zbiorami danych pod dużymi obciążeniami. Wśród funkcji Tarantool wyróżnia się możliwość tworzenia obsługujących w języku Lua (wbudowany LuaJIT), zastosowanie formatu MessagePack do wymiany danych z klientem, obecność dwóch wbudowanych silników (przechowywanie w RAM z możliwością zapisania na nośniku stałym oraz dwupoziomowe przechowywanie danych na bazie LSM-tree), wsparcie dla kluczy wtórnych, czterech typów indeksów (HASH, TREE, RTREE, BITSET), narzędzia do synchronnej i asynchronicznej replikacji w trybie master-master, wsparcie dla uwierzytelniania połączeń i kontroli dostępu oraz możliwość przetwarzania zapytań SQL.
Główne zmiany:
- Stabilizacja MVCC (Wielowersjonowe zarządzanie konkurencyjnym dostępem) w silniku in-memory memtx.
- Wsparcie dla transakcyjności w binarnym protokole IPROTO. Wcześniej, aby zrealizować transakcję, należało napisać procedurę składowaną w języku Lua.
- Wsparcie dla synchronnej replikacji, która działa w odniesieniu do konkretnych tabel.
- Mechanizm automatycznego przełączania na zapasowy węzeł (failover) oparty na protokole RAFT. W Tarantool od dawna wdrożono asynchroniczną replikację na podstawie WAL, teraz nie trzeba ręcznie monitorować węzła master.
- Automatyczne przełączanie węzła master jest również dostępne w przypadku architektury z segmentacją (shardingiem) danych (wykorzystywana jest biblioteka vshard, która rozdziela dane pomiędzy serwerami za pomocą wirtualnych koszy (bucket)).
- Ulepszono framework do tworzenia aplikacji klastrowych Tarantool Cartridge przy pracy w wirtualnych środowiskach. Tarantool Cartridge teraz lepiej radzi sobie z obciążeniem.
- Przyspieszono działanie roli Ansible do wdrażania klastra do 15-20 razy. Dzięki temu praca z dużymi klastrami stała się prostsza.
- Pojawiło się narzędzie do uproszczonej migracji z wersji starszych >1.6 i < 1.10, które jest dostępne jako dodatkowa opcja przy uruchamianiu. Wcześniej migracja musiała być przeprowadzana poprzez wdrożenie wersji pośredniej 1.10.
- Przeprowadzono optymalizację przechowywania małych krotek.
- W SQL wprowadzono wsparcie dla UUID oraz poprawiono konwersję typów.
Warto zauważyć, że począwszy od wersji 2.10 zostanie wprowadzona nowa polityka tworzenia wydań. Przy znaczących wydaniach, które łamią zgodność wsteczną, będzie zmieniać się pierwsza cyfra wersji, w wydaniach pośrednich — druga, a w poprawkach — trzecia (po 2.10 zostanie wydane 3.0.0).
Źródło: opennet.ru
