AQL object literal simplification

ArangoDB’s devel branch recently saw a change that makes writing some AQL queries a bit simpler.

The change introduces an optional shorthand notation for object attributes in the style of ES6’s enhanced object literal notation.

For example, consider the following query that groups values by age attribute and counts the number of documents per distinct age value:

The object declaration in the last line of the query is somewhat redundant because one has to type identical attribute names and values:

In this case, the new shorthand notation simplifies the RETURN to:

In general, the shorthand notation can be used for all object literals when there is an attribute name that refers to a query variable of the same name.

It can also be mixed with the longer notation, e.g.:

Posted in Query Language | Leave a comment

ArangoDB 2.6.3 maintenance release

A maintenance release of ArangoDB is available, we have fixed an issue with NULL bytes inside attribute values (#1409) that occurs when fetching a document via REST API.

Release 2.5.6 and 2.6.3 can be downloaded from arangodb.com/download now.

Posted in Releases | Leave a comment

Introducing RETURN DISTINCT for AQL queries

Last week saw the addition of the RETURN DISTINCT for AQL queries. This is a new shortcut syntax for making result sets unique.

For this purpose it can be used as an easier-to-memorize alternative for the already existing COLLECT statement. COLLECT is very flexible and can be used for multiple purposes, but it is syntactic overkill for making a result-set unique.

The new RETURN DISTINCT syntax makes queries easier to write and understand.

Here’s a non-scientific proof for this claim:

Compare the following queries, which both return each distinct age attribute value from the collection:

With RETURN DISTINCT:

More »

Posted in Query Language | Leave a comment

ArangoDB nightly Travis builds

Great news for driver maintainers that want access to the latest developments in ArangoDB. Many of you have asked us if we can provide a nightly build of our ArangoDB database to improve CI test automation using Travis-CI. The Travis builds for ArangoDB 2.6, 2.7 and devel will be generated and published shortly after midnight (GMT).

Posted in Drivers | Leave a comment

ArangoDB Weekly #30 | New performance results & O’Reilly article

Maybe you’ve noticed that there was no ArangoDB newsletter last week. So here’s the news of the last two weeks and the announcement that during the summer our NL will be biweekly. :)

In the meantime we’ve improved the performance of the shortest path implementation significantly and rerun the Multi-Model performance tests. The article Data modeling with multi-model databases – a use case for multi-model databases – was a huge success on O’Reilly Radar last week, it had the most page views of all Radar articles. It’s worth to read.

Finally, Mesosphere launched it’s SDK and developer program and we are proud to be one of the first partners that integrate into DCOS. Stay tuned, there will be more to come.

Keep an eye on our blog or follow us on Twitter for news about ArangoDB.

More »

Posted in Newsletter | Leave a comment

ES6 Features TurboFan, Strong-mode and REST Parameters come with new V8 Upgrade

ArangoDB 2.6 uses V8 engine version 3.31.74.1 for running its own and all user-defined JavaScript code. In ArangoDB 2.7 (currently in development), we have upgraded V8 to version 4.3.61.

The new V8 version in ArangoDB 2.7 provides several additional ES6 Harmony features that can be used to improve JavaScript usability and code quality. This blog post showcases strong mode and rest parameters, and also shows how to activate TurboFan, V8’s new JIT compiler for JavaScript.

ArangoDB 2.7 is in development right now, but it can be tried today by compiling it from source.

More »

Posted in General | 3 Comments

Multi-model benchmark round 1 – completed

It’s time for another update of my NoSQL performance blog series. This hopefully concludes the first part of this series with the initial databases ArangoDB, MongoDB, Neo4J and OrientDB and I can now start to check out other databases. I’m getting a lot of requests to test others as well and I’ll try to add them as soon as possible. Pull requests to my repository are also more than welcome. Remember it is all open-source.

The first set of benchmarks was started as a proof that multi-model can compete with specialized solutions and I started with the corresponding top dogs (Neo4J and MongoDB) for graphs and documents. After the first blog post, we were asked by the community to include OrientDB as the other multi-model database, too, which makes sense and therefore I expanded the initial lineup.

Concluding the tests did take a bit longer than expected, because vendors took up the challenge and improved their products with impressive results – as we asked them to do. Still, for each iteration we needed some time to run all tests, see below. However, on the upside, everyone can benefit from the improvements, which is an awesome by-product of the benchmark tests. More »

Posted in Performance | 11 Comments

Data Modeling with Multi-Model Databases

Max published an article on O’Reilly Radar about the use case he presented on Strata+Hadoop World in London earlier this year.

Read how multi-model databases can be used in an aircraft fleet maintenance system by mixing different data models within the same data store. 20150612_arangodb-treeofitems-01

A query language like AQL can help to answer maintenance questions like:

  • What are all the parts in a given component?
  • Given a (broken) part, what is the smallest component of the aircraft that contains the part and for which there is a maintenance procedure?
  • Which parts of this aircraft need maintenance next week?

Read on: O’Reilly Radar – Data modeling with multi-model databases

Posted in Graphs, Publication | 1 Comment

ArangoDB 2.6.2 | Maintenance Release

ArangoDB 2.6.2 maintenance release available – ArangoDB download

  • fixed issue #1383: bindVars for HTTP API doesn’t work with empty string
  • fixed handling of default values in Foxx manifest configurations
  • fixed handling of optional parameters in Foxx manifest configurations

Read more about the new features in ArangoDB 2.6 in our What’s new article, the AQL 2.5 vs. 2.6 performance shootout or our latest performance comparison of multi-model and specialized DB’s (MongoDB, Neo4j).

Posted in Releases | Leave a comment

ArangoDB Weekly #29 | new Release 2.6.1, updated Benchmark

This week we published a 2.6.1 maintenance release. A few weeks ago we published a performance comparison. Since it has raised a lost of interest and the discussions around it have led to improvements in all products we’ve updated the benchmark comparison .
In addition we’ve also released a performance comparison between ArangoDB 2.5 and 2.6.
Stay tuned and follow @arangodb for more news.

More »

Posted in Newsletter | Leave a comment