home shape

ArangoDB 3.7 BETA – Graph & Search Engine Upgrades

Estimated reading time: 4 minutes

After many weeks of designing, implementing, and testing we are happy to announce that all the exciting features are now in place for ArangoDB 3.7. We are proud to share a 3.7 Beta 1 preview release, which provides an opportunity for you to try out all upcoming features before the final release. On the ArangoDB technical preview page you’ll find the Beta 1 packages for the Community and Enterprise Editions, so you can install, play and test locally. 

Furthermore, we have a number of interactive tutorials online, enabling you to explore these new features without having to install ArangoDB yourself:

By the way, all these tutorials are running on our cloud service ArangoGraph, which you may also want to have a look at.

Overview of 3.7 Features

Let us briefly look at the key features of ArangoDB 3.7. Please refer to the changelog for a complete list:

Furthermore, following up the deprecation in earlier versions of ArangoDB, the MMFiles Storage Engine has been fully retired in ArangoDB 3.7.

Please keep in mind that this is a beta release. It is suited for testing purposes only and is NOT for production usage. It is solely meant for trying out new features way before they become available in a stable release. Although we have done our best to produce useful features and APIs, things may still contain bugs or may change until the final 3.7 release. 

Your feedback is highly appreciated! Please share your experience and thoughts with us in the dedicated feedback-3-7 channel on Slack.

Highlight features in 3.7 Beta 1

The Beta 1 release contains all features of Alpha 2 and Alpha 1, like SatelliteGraphs, Fuzzy Search, Schema Validation, HTTP/2 support, JWT secret rotation, TLS key & certificate rotation and the new Insert-Update functionality.

In addition, the following 3.7 features were added since the Alpha 1 release:

Parallel Graph Traversals (Enterprise Edition)

The Enterprise Edition of ArangoDB 3.7 allows specifying the level of parallelism to employ for nested traversals. The amount of worker threads can be specified using traversal OPTIONS as shown below:

FOR start IN Vertex
    FOR v, e, p IN 2 OUTBOUND start Edge
    OPTIONS {uniqueVertices: "path", parallelism: 4}
        RETURN p.vertices

Due to the required synchronization for splitting up traversal inputs and merging results, using traversal parallelization incurs some overhead. So it is not a silver bullet for all use cases.

However, parallelizing a traversal is normally useful when there are many inputs (start vertices) that the nested traversal can work on concurrently. This is often the case when a nested traversal is fed with several tens of thousands of start vertices, which can then be distributed randomly to worker threads for parallel execution.

Right now, traversal parallelization is limited to traversals in single server deployments and to cluster traversals that are running in a OneShard setup. Cluster traversals that run on a coordinator node and SmartGraph traversals are currently not parallelized.

Disjoint SmartGraphs (Enterprise Edition)

Disjoint SmartGraphs are a specialized type of SmartGraphs.

In addition to the guaranteed sharding in SmartGraphs, a Disjoint SmartGraph prohibits edges between vertices with different SmartGraph attribute values.

This ensures that graph traversals, shortest paths, and k-shortest-paths queries can be executed locally on a single database server, improving the performance for these types of queries compared to more interconnected SmartGraphs.

Incremental Plan Updates

In order to reduce cluster internal network communication, we reworked the way in which the agency is communicating its plan and current state. Previously, the agency communicated the entire state when only parts of the state changed.

In 3.7 we reduced the communication to just a fraction of this so that only the actual changes are exchanged, in an incremental fashion. So be prepared to see less internal network traffic and less load on the agents!

Next Steps

We hope you find some useful stuff in this Beta release and take either the Community or Enterprise Edition for a spin. Let us know your thoughts about the features and their ease-of-use via the dedicated Slack channel 

Hear More from the Author

Graph Analytics with ArangoDB

A Graph Database That Scales – ArangoDB 3.7 Release Webinar

Continue Reading

Sort-Limit Optimization in AQL

Building a Mini Database Cluster for Fun – LEGO Edition

Great improvements for the RocksDB Storage Engine in ArangoDB 3.4

Joerg Schad

Joerg Schad

Jörg Schad is our CTO. In a previous life, he worked on Machine Learning Infrastructure in health care, distributed systems at Mesosphere, implemented distributed and in-memory databases, and conducted research in the Hadoop and Cloud area. He’s a frequent speaker at meetups, international conferences, and lecture halls.

Leave a Comment

Get the latest tutorials, blog posts and news: