de lancering van een veelzijdige DBMS , met flexibele modellen voor het opslaan van documenten, grafen en gegevens in key-value formaat. De interactie met de database gebeurt via een SQL-achtig querytaal of via speciale uitbreidingen in JavaScript. De methoden voor gegevensopslag voldoen aan de ACID-criteria (Atomiciteit, Consistentie, Isolatie, Duurzaamheid), ondersteunen transacties en bieden zowel horizontale als verticale schaalbaarheid. Beheer van de DBMS kan plaatsvinden via een webinterface of een consoleclient . De code van ArangoDB is gelicentieerd onder de Apache 2. Het project is geschreven in C en JavaScript.
Belangrijke kenmerken van ArangoDB:
- De mogelijkheid om geen datamodel te definiĆ«ren (Schema-free) ā gegevens worden gestructureerd in de vorm van documenten, waarbij metadata en informatie over de structuur van gebruikersgegevens is gescheiden;
- Ondersteuning voor het gebruik van ArangoDB als server voor webapplicaties in JavaScript, met toegang tot de database via REST/Web API;
- Gebruik van JavaScript voor browserapplicaties die communiceren met de database en voor handlers die op de DBMS worden uitgevoerd;
- Multithread-architectuur die de belasting over alle CPU-kernen verdeelt;
- Flexibel gegevensopslagmodel waarbij key-value paren, documenten en parameters die relaties tussen records definiƫren, kunnen worden gecombineerd (middelen voor het doorlopen van grafpunten worden verschaft);
- Diverse datamodelpresentaties (documenten, grafen en key-value koppelingen) kunnen in ƩƩn query worden gemengd, wat de aggregatie van heterogene gegevens vereenvoudigt;
- Ondersteuning voor queries met joins;
- De mogelijkheid om het type index te kiezen dat past bij de te behandelen taken (bijvoorbeeld, een index voor full-text zoekopdrachten kan worden gebruikt);
- Instelbare betrouwbaarheid: de applicatie kan zelf bepalen wat voor haar belangrijker is: een hogere betrouwbaarheid of een hogere prestaties;
- Efficiƫnte opslag die volledig gebruikmaakt van de mogelijkheden van moderne hardware (bijvoorbeeld, SSD's) en grote caches kan gebruiken;
- Transacties: de mogelijkheid om queries gelijktijdig voor meerdere documenten of collecties uit te voeren met optionele coherentie van transacties en isolatie;
- Ondersteuning voor replicatie en sharding: de mogelijkheid om master-slave configuraties te creƫren en datasets over verschillende servers te verspreiden op basis van bepaalde criteria;
- Voor de creatie van microservices wordt een JavaScript-framework aangeboden, , uitgevoerd binnen de DBMS-server met directe toegang tot de gegevens.
, aangeboden in de release van ArangoDB 3.6:
- Er is optimalisatie van de prestaties van subquery's en van de UPDATE- en REPLACE-operaties uitgevoerd;
- Er is de mogelijkheid geĆÆmplementeerd voor parallelle uitvoering van AQL-query's, wat de tijd voor het verzamelen van gegevens die over verschillende clusterknooppunten zijn verspreid, verkort;
- Er is uitgestelde materialisatie van documenten geĆÆmplementeerd, waardoor in sommige gevallen de volledige extractie van irrelevante documenten vermeden kan worden;
- Bij het scannen van documenten is er vroegtijdig afschrijven van documenten die niet voldoen aan de opgegeven filter verzekerd;
- De ArangoSearch full-text zoekmachine is verbeterd, met ondersteuning voor rangschikking op basis van gegevenssimilariteit. Ondersteuning voor een analyzer voor autocompletie van zoekopdrachten is toegevoegd, evenals de functies TOKENS() en PHRASE() voor dynamische vorming van zoekopdrachten;
- Er is een instelling maxRuntime toegevoegd voor het selectief beperken van de uitvoeringstijd van een query;
- Er is de optie "--query.optimizer-rules" toegevoegd om de activering van bepaalde optimalisaties tijdens het verwerken van query's te beheren;
- De mogelijkheden voor het organiseren van clusterwerk zijn uitgebreid. De optie "--cluster.upgrade" is toegevoegd voor het kiezen van de modus voor het upgraden van knooppunten in het cluster;
- Ondersteuning voor TLS 1.3 is toegevoegd voor het versleutelen van de communicatielijn tussen client en server (standaard blijft de client TLS 1.2 gebruiken).
Bron: opennet.ru
