ArangoDB Bi-Weekly Newsletter #36 | Release 2.6.9, new lightweight GO driver

We had a lot of fun attending code.talks Hamburg last week, talking to a lot of developers that were interested in NoSQL and microservices. Today, Max is in Dublin at #MesosCon talking about Persistent Primitives in Action with Jörg Schad from Mesosphere. We made further progress with our Mesos integration and are in the final steps to conduct a cluster performance test. By the way, we will publish an updated NoSQL performance test shortly, with PostgreSQL in the comparison field. Stay tuned!

The next major release 2.7 is almost done, expected to be shipped in the beginning of next week. Thanks for all your valuable feedback and testings. The next release is already under heavy development, you can expect great improvements in the graph part of ArangoDB.

ArangoDB Releases

ArangoDB 2.6.9 fixed a failing AQL skiplist which occurs in a sort and limit combination. The second release candidate of ArangoDB 2.7 is available for download – awaiting the final release in the next days. You can find a full list of changes in our change-log .

ArangoDB 2.6.9 is available as AWS Marketplace image (AMI) as well.
More »

Posted in Newsletter | Leave a comment

ArangoDB 2.6.9 Maintenance Release

In ArangoDB 2.6.9 we have fixed an AQL skiplist issue that occurs in a combination of sort and limit.

When using a Skiplist index on an attribute (say “a”) and then using sort and skip on this attribute caused the result to be empty e.g.:

Was always empty no matter how many documents are stored in test. This is now fixed.

Posted in Releases | 1 Comment

ArangoDB 2.7 RC1 – Have a look!

We put a lot of brainpower into the next major release of our favorite database. Thanks to your feedback and contributions we got some important steps forward. Share your professional experiences, opinions and feedback with us on this release candidate of ArangoDB 2.7.

This is a quick info about the upcoming 2.7 release – for details please check our documentation and the changelog.


As performance and ease of use are part of our key goals, we worked hard on some major improvements. Thanks to your feedback and contributions we were able to implement some nice stuff like:

Index buckets

The primary indexes and hash indexes of collections can now be split into multiple index buckets. That said, loading and resizing of large indexes improves significantly in 2.7:

  • Reducing loading time for collections: initially building the in-memory index data can be parallelized (even for a single index)
  • faster resizing: resizing an index when it is about to run out of reserved space is performed per bucket. Resizing and rehashing a bucket is much faster and less intrusive than resizing and rehashing the entire index.

Throughput enhancements

Throughput is another key requirement for a premium database. Again we pushed our throughput a huge step forward with 2.7. We improved the ArangoDB-internal implementations for dispatching requests, keeping statistics and assigning V8 contexts to threads. More »

Posted in Releases | Leave a comment

ArangoDB Weekly #34 | Release 2.6.8 (ARM), aqlQuery Template String Generator

In just a few days we will publish our release candidate of ArangoDB 2.7. As secure performance and ease of use are our key goals, we worked hard on some nice improvements like

  • Index Buckets (Reducing loading time for collections and enable faster resizing)
  • Throughput Enhancements (Real world tests showed 25-75% increase of throughput compared to 2.6)
  • Enhancements for AQL like “return distinct”, “template query strings” or the brand new “AQL query result cache”

So stay tuned!

ArangoDB Releases

The release ArangoDB 2.6.8 fixes a memory access bug on ARM. So for your pet project on a Raspberry Pi you should update to this new release. There is no need to update to 2.6.8 for other distributions.

You can find a full list of changes in our change-log (2.6.8)
More »

Posted in Newsletter | Leave a comment

ArangoDB-PHP Driver Improvements

While preparing the release of ArangoDB 2.7, some improvements were made for the PHP driver for ArangoDB.

The 2.7 version of the PHP driver now supports the AQL query results cache. The cache can be turned on or off globally, or be set to demand mode. The demand mode will allow controlling caching on a per-AQL-query basis.

Additionally, the HTTP transport layer in the PHP driver was improved. Some internal string handling methods were optimized so that the transport part becomes cheaper. All driver operations that communicate with the ArangoDB server will benefit from this.

For a demonstration of the improvements, here is a script that creates 100,000 documents in a local ArangoDB database via the PHP driver. As we’re interested in assessing the HTTP layer improvements, the script intentionally issues 100,000 HTTP requests instead of using the specialized import method provided by the driver.
More »

Posted in PHP, Releases | Leave a comment

ArangoDB 2.6.8 – Maintenance Release (ARM only)

The release ArangoDB 2.6.8 fixes a memory access bug on ARM. So for your pet project on a Raspberry Pi you need to change the CPU alignment setting to allow unaligned memory access.

There is no need to update to 2.6.8 for other distributions.

ARM only

The ArangoDB packages for ARM require the kernel to allow unaligned memory access. How the kernel handles unaligned memory access is configurable at runtime by checking and adjusting the contents /proc/cpu/alignment.

In order to operate on ARM, ArangoDB requires the bit 1 to be set. This will make the kernel trap and adjust unaligned memory accesses. If this bit is not set, the kernel may send a SIGBUS signal to ArangoDB and terminate it.

To set bit 1 in /proc/cpu/alignment use the following command as a privileged user (e.g. root):

Note that this setting affects all user processes and not just ArangoDB. Setting the alignment with the above command will also not make the setting permanent, so it will be lost after a restart of the system. In order to make the setting permanent, it should be executed during system startup or before starting arangod.

The ArangoDB start/stop scripts do not adjust the alignment setting, but rely on the environment to have the correct alignment setting already. The reason for this is that the alignment settings also affect all other user processes (which ArangoDB is not aware of) and thus may have side-effects outside of ArangoDB. It is therefore more reasonable to have the system administrator carry out the change.

Posted in Releases | Leave a comment

Updating an Amazon Marketplace Image (AMI) of ArangoDB

ArangoDB is available as Amazon Marketplace Image (AMI) for free.

The process to submit and publish a new ArangoDB image to the marketplace takes some time and you might not find the latest release in the marketplace store yet. However, updating to the latest version is not that hard.

First, log in to the virtual machine with the user ubuntu and the public DNS name of the instance.

To start an update to a known version of ArangoDB you can use:

To upgrade an ArangoDB instance to a new major version (from 2.5.x to 2.6.x), use:

More »

Posted in Releases | Leave a comment

ArangoJS 4 alpha available now

The first alpha of the official JavaScript driver arangojs‘ upcoming major release is now available on npm.

Version 4 streamlines the driver’s API by removing unnecessary server roundtrips to obtain references to collections and graphs that already exist:



More »

Posted in Drivers, Javascript | Leave a comment

On building AQL Query Strings

I recently wrote two recipes about generating AQL query strings. They are contained in the ArangoDB cookbook by now:

After that, Github user tracker1 suggested in Github issue 1457 to take the ES6 template string variant even further, using a generator function for string building, and also using promises and ES7 async/await.

We can’t use ES7 async/await in ArangoDB at the moment due to lacking support in V8, but the suggested template string generator function seemed to be an obvious improvement that deserved inclusion in ArangoDB.

Basically, the suggestion is to use regular JavaScript variables/expressions in the template string and have them substituted safely.

With regular AQL bind parameters, a query looks like this:

This is immune to parameter injection, because the query string and the bind parameter value are passed in separately. But it’s not very ES6-y.

More »

Posted in Query Language, Security | Leave a comment

ArangoDB Weekly #33 | V8 upgraded, ArangoDB 2.6.7

In the last two weeks we’ve fixed some issues, upgraded the bundled V8 version in ArangoDB and released the maintenance release 2.6.5 and 2.6.7 . Besides that we continued our efforts to enhance our indexing capabilities and startet further cluster tests.

ArangoDB Release

The next maintenance release for ArangoDB 2.6 is available for download. You can find a full list of changes in our change-log (2.6.7) and change-log (2.6.5).

Download ArangoDB 2.6.7

ArangoDB related (Drivers & more)

  • (Elasticsearch) elasticsearch-river-arangodb: River Plugin for ElasticSearch, now builds against ES 1.7 (Patrick Huber)
  • (PHP) zend-arangodb-auth (early stage): provides auth and acl for zend framework (Cyberrebell)
  • (Python) python-arango (2.0.0): API call methods for user management and monitoring (Joohwan Oh)
  • (vert.x) vertx-arango-client (early stage): ArangoDB client library built with vert.x. (Craig G)

More »

Posted in Newsletter | Leave a comment