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 Oasis, 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:

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