opublikowany wydanie wielofunkcyjnego systemu DBMS ArangoDB 3.6, który zapewnia elastyczne modele przechowywania dokumentów, wykresów i danych klucz-wartość. Praca z bazą danych odbywa się poprzez język zapytań przypominający SQL AQL lub poprzez specjalne rozszerzenia w JavaScript. Metody przechowywania danych są zgodne z ACID (atomowość, spójność, izolacja, trwałość), obsługują transakcje i zapewniają skalowalność poziomą i pionową. Systemem DBMS można zarządzać poprzez interfejs sieciowy lub klienta konsolowego Arango SH. Kod ArangoDB dystrybuowane przez na licencji Apache 2. Projekt napisany jest w języku C i JavaScript.
Kluczowe cechy ArangoDB:
Możliwość obejścia się bez definiowania schematu przechowywania danych (Schema-free) – dane są strukturyzowane w formie dokumentów, w których metadane i informacje o strukturze są oddzielone od danych użytkownika;
Wsparcie wykorzystania ArangoDB jako serwera dla aplikacji webowych w języku JavaScript z możliwością dostępu do bazy poprzez REST/Web API;
Używanie JavaScript dla aplikacji przeglądarkowych uzyskujących dostęp do bazy danych oraz dla procedur obsługi wykonywanych po stronie DBMS;
Architektura wielowątkowa rozkładająca obciążenie na wszystkie rdzenie procesora;
Elastyczny model przechowywania danych, który może łączyć pary klucz-wartość, dokumenty i parametry definiujące relacje między rekordami (zapewnia narzędzia do przechodzenia przez wierzchołki wykresu);
W jednym zapytaniu można mieszać różne modele reprezentacji danych (dokumenty, wykresy i pary klucz-wartość), co upraszcza agregację heterogenicznych danych;
Obsługa zapytań o scalanie (JOIN);
Możliwość wyboru typu indeksu odpowiadającego rozwiązywanym zadaniom (na przykład możesz użyć indeksu do wyszukiwania pełnotekstowego);
Konfigurowalna niezawodność: sama aplikacja może określić, co jest dla niej ważniejsze: wyższa niezawodność czy wyższa wydajność;
Wydajna pamięć masowa, która w pełni wykorzystuje nowoczesny sprzęt (taki jak dyski SSD) i może korzystać z dużych pamięci podręcznych;
Transakcje: możliwość uruchamiania zapytań dotyczących wielu dokumentów lub kolekcji jednocześnie z opcjonalną spójnością i izolacją transakcji;
Obsługa replikacji i shardingu: możliwość tworzenia konfiguracji master-slave i dystrybucji zestawów danych na różne serwery w zależności od określonej funkcji;
Dostarczona jest platforma JavaScript do tworzenia mikrousług Foxx, wykonywany wewnątrz serwera DBMS z bezpośrednim dostępem do danych.
Zoptymalizowano wydajność podzapytań oraz operacji UPDATE i REPLACE;
Zaimplementowano możliwość równoległego wykonywania zapytań AQL, co pozwala na skrócenie czasu gromadzenia danych rozproszonych po różnych węzłach klastra;
Wdrożono opóźnioną materializację dokumentów, co pozwala w niektórych sytuacjach wyeliminować konieczność całkowitego odzyskania nieistotnych dokumentów;
Podczas skanowania dokumentów zapewnione jest wczesne odrzucanie dokumentów, które nie pasują do określonego filtra;
Udoskonalono wyszukiwarkę pełnotekstową ArangoSearch, obsługującą ranking na podstawie podobieństwa danych. Dodano obsługę analizatora do autouzupełniania zapytań, zaimplementowano funkcje TOKENS() i PHRASE() do dynamicznego generowania zapytań;
Dodano ustawienie maxRuntime umożliwiające selektywne ograniczenie czasu wykonania zapytania;
Dodano opcję „—query.optimizer-rules” do kontrolowania aktywacji niektórych optymalizacji podczas przetwarzania zapytań;
Rozszerzono możliwości organizacji pracy klastra. Dodano opcję „—cluster.upgrade” umożliwiającą wybranie trybu aktualizacji dla węzłów w klastrze;
Dodano obsługę protokołu TLS 1.3 w celu szyfrowania kanału komunikacji pomiędzy klientem a serwerem (domyślnie klient w dalszym ciągu korzysta z protokołu TLS 1.2).