publiceras släpper ett multifunktionellt DBMS ArangoDB 3.6, som tillhandahåller flexibla modeller för lagring av dokument, grafer och nyckel-värdedata. Arbetet med databasen utförs genom ett SQL-liknande frågespråk AQL eller genom speciella tillägg i JavaScript. Datalagringsmetoder är ACID-kompatibla (Atomicity, Consistency, Isolation, Durability), stödjer transaktioner och ger både horisontell och vertikal skalbarhet. DBMS kan hanteras via ett webbgränssnitt eller en konsolklient Arango SH. ArangoDB-kod levererad av licensierat under Apache 2. Projektet är skrivet i C och JavaScript.
Nyckelfunktioner i ArangoDB:
Möjligheten att klara sig utan att definiera ett datalagringsschema (schemafritt) - data struktureras i form av dokument där metadata och information om strukturen separeras från användardata;
Stöd för att använda ArangoDB som server för webbapplikationer i JavaScript med möjlighet att komma åt databasen via REST/Web API;
Använda JavaScript för webbläsarapplikationer som kommer åt databasen och för hanterare som körs på DBMS-sidan;
Flertrådig arkitektur som fördelar belastningen över alla CPU-kärnor;
En flexibel datalagringsmodell som kan kombinera nyckel-värdepar, dokument och parametrar som definierar relationer mellan poster (ger verktyg för att korsa grafens hörn);
Olika modeller för datarepresentation (dokument, grafer och nyckel-värdepar) kan blandas i en fråga, vilket förenklar aggregeringen av heterogena data;
Stöd för sammanslagningsfrågor (JOIN);
Möjligheten att välja den typ av index som motsvarar de uppgifter som löses (du kan till exempel använda indexet för fulltextsökning);
Anpassningsbar tillförlitlighet: applikationen själv kan avgöra vad som är viktigare för den: högre tillförlitlighet eller högre prestanda;
Effektiv lagring som drar full nytta av modern hårdvara (som SSD:er) och kan använda stora cachar;
Transaktioner: möjligheten att köra frågor på flera dokument eller samlingar samtidigt med valfri transaktionskonsistens och isolering;
Stöd för replikering och sönderdelning: möjligheten att skapa master-slave-konfigurationer och distribuera datamängder till olika servrar beroende på en viss funktion;
Ett JavaScript-ramverk tillhandahålls för att skapa mikrotjänster Foxx, exekveras inuti en DBMS-server med direkt tillgång till data.
Prestandan för delfrågor, såväl som UPDATE- och REPLACE-operationer har optimerats;
Möjligheten att parallellisera exekvering av AQL-förfrågningar har implementerats, vilket gör det möjligt att minska tiden för insamling av data fördelad över olika klusternoder;
Implementerad försenad materialisering av dokument, vilket gör det möjligt att i vissa situationer eliminera behovet av att helt hämta irrelevanta dokument;
Vid skanning av dokument säkerställs tidig kassering av dokument som inte matchar det angivna filtret;
ArangoSearchs fulltextsökmotor har förbättrats och stödjer rankning baserad på datalikhet. Lade till analysatorstöd för autokomplettering av frågor, implementerade TOKENS()- och PHRASE()-funktioner för att dynamiskt generera sökfrågor;
Lade till maxRuntime-inställning för att selektivt begränsa exekveringstiden för frågan;
Lade till alternativet "—query.optimizer-rules" för att styra aktiveringen av vissa optimeringar vid bearbetning av frågor;
Möjligheterna att organisera driften av klustret har utökats. Lade till alternativet "—cluster.upgrade" för att välja uppgraderingsläge för noder i klustret;
Lagt till stöd för TLS 1.3 för att kryptera kommunikationskanalen mellan klienten och servern (som standard fortsätter klienten att använda TLS 1.2).