wydanie wielofunkcyjnej bazy danych , oferującej elastyczne modele przechowywania dokumentów, grafów i danych w formacie klucz-wartość. Praca z bazą odbywa się za pomocą języka zapytań podobnego do SQL lub za pośrednictwem specjalnych rozszerzeń w języku JavaScript. Metody przechowywania danych spełniają wymagania ACID (atomowość, spójność, izolacja, trwałość), wspierają transakcje i zapewniają zarówno horyzontalną, jak i wertykalną skalowalność. Zarządzanie bazą danych może odbywać się za pomocą interfejsu webowego lub klienta konsolowego . Kod ArangoDB jest udostępniany na licencji Apache 2. Projekt napisany jest w językach C i JavaScript.
Kluczowe funkcje ArangoDB:
- Możliwość działania bez definiowania schematu przechowywania danych (Schema-free) — dane są strukturyzowane w postaci dokumentów, w których metadane i informacje o strukturze są oddzielone od danych użytkownika;
- Wsparcie dla użycia ArangoDB jako serwera dla aplikacji webowych w języku JavaScript z możliwością dostępu do bazy danych przez REST/Web API;
- Wykorzystanie JavaScriptu dla aplikacji przeglądarkowych z dostępem do bazy danych oraz dla procesorów uruchamianych po stronie bazy danych;
- Architektura wielowątkowa, rozdzielająca obciążenie na wszystkie rdzenie CPU;
- Elastyczny model przechowywania danych, w którym mogą być kombinowane pary klucz-wartość, dokumenty oraz parametry określające związki między rekordami (zapewnione są środki do nawigacji po wierzchołkach grafu);
- Różne modele reprezentacji danych (dokumenty, grafy i pary klucz-wartość) mogą być mieszane w jednym zapytaniu, co upraszcza agregację zróżnicowanych danych;
- Wsparcie dla zapytań z łączeniem (JOIN);
- Możliwość wyboru typu indeksu, odpowiadającego zadaniom (na przykład indeks do pełnotekstowego wyszukiwania);
- Konfigurowalna niezawodność: aplikacja może sama określać, co jest dla niej ważniejsze: wyższa niezawodność czy większa wydajność;
- Efektywne przechowywanie, w którym w pełni wykorzystywane są możliwości nowoczesnego sprzętu (na przykład dysków SSD) i mogą być stosowane duże pamięci podręczne;
- Transakcje: możliwość uruchamiania zapytań jednocześnie dla wielu dokumentów lub kolekcji z opcjonalną spójnością transakcji i izolacją;
- Wsparcie replikacji i sharding: możliwość tworzenia konfiguracji master-slave oraz rozdzielania zestawów danych na różne serwery w zależności od określonego kryterium;
- Do tworzenia mikrousług dostarczany jest framework JavaScript, , wykonywany wewnątrz serwera DBMS z bezpośrednim dostępem do danych.
, proponowane w wydaniu ArangoDB 3.6:
- Przeprowadzono optymalizację wydajności podzapytań oraz operacji UPDATE i REPLACE;
- Zrealizowano możliwość równoległego wykonania zapytań AQL, co pozwala na skrócenie czasu zbierania danych rozłożonych na różnych węzłach klastra;
- Wprowadzono opóźnioną materializację dokumentów, co w niektórych sytuacjach pozwala na uniknięcie pełnego wydobywania nieistotnych dokumentów;
- Podczas skanowania dokumentów wprowadzono wcześniejsze odrzucanie dokumentów, które nie spełniają określonego filtru;
- Udoskonalono silnik pełnotekstowego wyszukiwania ArangoSearch, który wspiera ranking na podstawie podobieństwa danych. Dodano wsparcie dla analizatora do autouzupełniania zapytań, wprowadzono funkcje TOKENS() i PHRASE() do dynamicznego formułowania zapytań wyszukiwania;
- Dodano ustawienie maxRuntime do ograniczenia czasu wykonania zapytania w sposób selektywny;
- Dodano opcję «—query.optimizer-rules» do zarządzania aktywacją określonych optymalizacji podczas przetwarzania zapytań;
- Rozszerzono możliwości organizacji pracy klastra. Dodano opcję «—cluster.upgrade» do wyboru trybu aktualizacji węzłów w klastrze;
- Dodano wsparcie dla TLS 1.3 do szyfrowania kanału komunikacyjnego między klientem a serwerem (domyślnie klient nadal korzysta z TLS 1.2).
Źródło: opennet.ru
