Wydanie Tarantool 2.8 DBMS

Dostępna jest nowa wersja Tarantool 2.8 DBMS, która umożliwia trwałe przechowywanie danych pochodzących z bazy danych in-memory. DBMS łączy w sobie dużą szybkość przetwarzania zapytań charakterystyczną dla systemów NoSQL (na przykład Memcached i Redis) z niezawodnością tradycyjnych systemów DBMS (Oracle, MySQL i PostgreSQL). Tarantool jest napisany w C i pozwala na tworzenie procedur przechowywanych w Lua. Kod rozpowszechniany jest na licencji BSD.

DBMS umożliwia efektywną pracę z dużymi ilościami danych przy dużym obciążeniu. Wśród funkcji Tarantool, możliwość tworzenia procedur obsługi w języku Lua (wbudowany LuaJIT), wykorzystanie formatu MessagePack podczas wymiany danych z klientem, obecność dwóch wbudowanych silników (przechowywanie w pamięci RAM z resetowaniem na dysk stały i dwupoziomowy magazyn dyskowy oparty na drzewie LSM), obsługa kluczy pomocniczych, cztery typy indeksów (HASH, TREE, RTREE, BITSET), narzędzia do replikacji synchronicznej i asynchronicznej w trybie master-master, obsługa uwierzytelnianie połączeń i kontrola dostępu, możliwość przetwarzania zapytań SQL.

Główne zmiany:

  • Stabilizacja MVCC (Multi-Version Concurrency Control) w silniku pamięci memtx.
  • Obsługa transakcji w protokole binarnym IPROTO. Poprzednio transakcja wymagała napisania procedury składowanej w Lua.
  • Obsługa replikacji synchronicznej, która działa w odniesieniu do poszczególnych tabel.
  • Mechanizm automatycznego przełączania na węzeł zapasowy (failover) w oparciu o protokół RAFT. W Tarantool od dawna zaimplementowano asynchroniczną replikację opartą na WAL, teraz nie trzeba ręcznie monitorować węzła głównego.
  • Automatyczne przełączanie węzła głównego jest również dostępne w przypadku topologii z data shardingiem (wykorzystywana jest biblioteka vshard, która dystrybuuje dane pomiędzy serwerami za pomocą wirtualnych Bucketów).
  • Ulepszanie frameworka do tworzenia aplikacji klastrowych Tarantool Cartridge podczas pracy w środowiskach wirtualnych. Nabój Tarantool teraz lepiej utrzymuje ładunek.
  • Praca roli Ansible przy wdrażaniu klastrów została przyspieszona nawet 15-20 razy. Ułatwia to pracę z dużymi klastrami.
  • Pojawiło się narzędzie umożliwiające uproszczoną migrację ze starszych wersji >1.6 i <1.10, które jest dostępne przy uruchomieniu poprzez dodatkową opcję. Wcześniej migrację należało przeprowadzić poprzez wdrożenie wersji tymczasowej 1.10.
  • Zoptymalizowano przechowywanie małych krotek.
  • SQL obsługuje teraz identyfikatory UUID i poprawia konwersję typów.

Warto zaznaczyć, że począwszy od wersji 2.10 nastąpi przejście na nową politykę generowania wydań. W przypadku wydań znaczących, które łamią kompatybilność wsteczną, zmieni się pierwsza cyfra wersji, dla wydań pośrednich - druga, a dla wydań korygujących - trzecia (po wersji 2.10 zostanie wydana wersja 3.0.0).

Źródło: opennet.ru

Dodaj komentarz