Benchmark: PostgreSQL, MongoDB, Neo4j, OrientDB and ArangoDB

In this blog post – which is a roundup of the performance blog series – I want to complete the picture of our NoSQL performance test and include some of the supportive feedback from the community. First of all, thanks for all your comments, contributions and suggestions to improve this open source NoSQL performance test (Github). This blog post describes a complete overhaul of the test with no need to read all the previous articles to get the picture – have a look at the appendix below to get all the details on hard- and software, the dataset and tests, used in this NoSQL performance comparison. Read more

More info...

ArangoDB 2.7 GA: Significant Improvements

Long awaited and now we´ve finished it! New major release of ArangoDB 2.7 is ready for download. First of all a big thanks to our community for your great support! We´ve implemented a lot of your ideas! After your feedback to RC1 and RC2 we are happy to bring a new major release to the world. With ArangoDB 2.7 we increased our performance even further and improved query handling a lot. Read more

More info...

ArangoDB 2.6.9: Maintenance Release Highlights

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.:

require("internal").db.test.ensureSkiplist("a");
require("internal").db._query("FOR x IN test SORT x.a LIMIT 10, 10");

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

More info...

ArangoDB 2.7 RC1: Preview the Latest Features

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. Read more

More info...

ArangoDB Weekly 34: Updates, Tips, and Community Highlights

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” Read more
More info...

ArangoDB PHP Driver: Enhancements for Version 2.7

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. Read more

More info...

ArangoDB 2.6.8: Latest Updates and Enhancements

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. Read more

More info...

AWS AMI Upgrade: Enhancements and Improvements

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. Read more

More info...

ArangoJS 4 Alpha: Available Now for Testing

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:

Before:

var db = require('arangojs')();
db.collection('users')
.then(function(collection) {
 return collection.import(allTheUsers)
})
.then(function() {
 return db.collection('blogs')
})
.then(function(collection) {
 return collection.import(allTheBlogs);
})
.then(function() {
 return db.collection('articles')
})
.then(function(collection) {
 return collection.import(allTheArticles);
})
.then(handleSuccess)
.catch(handleErrors);

After:

var db = require('arangojs')();
db.collection('users').import(allTheUsers)
.then(function() {
 return db.collection('blogs').import(allTheBlogs);
})
.then(function() {
 return db.collection('articles').import(allTheArticles);
})
.then(handleSuccess)
.catch(handleErrors);

(more…)

More info...

Building AQL Query Strings: Tips and Best Practices | ArangoDB Blog

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:

var bindVars = { name: "test" };
var query = `FOR doc IN collection 
         FILTER doc.name == @name 
         RETURN doc._key`;
db._query(query, bindVars);

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…)

More info...

Get the latest tutorials,
blog posts and news: