Comparison: Lockless programming with atomics in C++ 11 vs. mutex and RW-locks
ArangoDB is multithreaded and able to use several CPU-cores at once. Because of that access to common data structures to these threads have to be protected from concurrent access. ArangoDB currently uses mutexes, spinlocks and RW-locks for that. With the ongoing development of the MVCC the number of situations where protected access is needed grows significantly. If locking is done too often the scalability is effectively limited to one core. So this test was done to estimate the costs, and evaluate other solutions – so called lockless programming with atomics.
ArangoDB 2.4.3 Release: Bug Fixes and Enhancements
This version is deprecated. Download the new version of ArangoDB
A maintenance release for ArangoDB 2.4 is available for download or via your favorite package manager.
v2.4.3 (2015-02-06)
- fix multi-threading with openssl when running under Windows
- fix timeout on socket operations when running under Windows
- Fixed an error in Foxx routing which caused some apps that worked in 2.4.1 to fail with status 500:
undefined is not a function
errors in 2.4.2 This error was occurring due to seldom internal rerouting introduced by the malformed application handler.
ArangoDB Logstash Output: Efficient Data Integration

Inspired by a question on StackOverflow, I did some investigation about how to make Logstash send log events to ArangoDB.
There is no dedicated Logstash output plugin for ArangoDB on the Logstash plugins page, so I had already accepted to write one on my own.
Browsing the plugins page for inspiration, I found an HTTP output plugin for Logstash. It seems to be general enough that it can send the log event in JSON format to any HTTP-speaking backend.
ArangoDB’s API is JSON over HTTP, so it sounded like a perfect match. I briefly tried it out and it seemed to work fine.
Dynamic Attribute Names in AQL: ArangoDB Techniques
On our mailing list, there is quite often the question whether attribute names in objects returned from AQL queries can be made dynamic. Jan discusses in his blog how such dynamic attribute names could be expressed and shows the current implementation that comes with ArangoDB 2.5 – adapting an ES6 proposal that might bring robust dynamic variable names to JavaScript as well.
In ArangoDB 2.5 you will be able to use dynamic variable names as follows:
FOR doc IN collection
LET type = doc.type;
RETURN { [type] : doc.value }
Functions are allowed as well:
FOR i IN 1..3
RETURN {
[ CONCAT('test', i) ] : i
}
ArangoDB Optimizer Rule: Efficient Calculations
In the upcoming ArangoDB 2.5 (current devel branch) a new optimizer rule move-calculations-down
was added. Jan showcases in his latest blog post how queries with calculations could benefit from this new optimiser rule.
Read in Jan’s blog how this rule could accelerate your queries
ArangoDB 2.4.2
This version is deprecated. Download the new version of ArangoDB
A maintenance release for ArangoDB 2.4.2 is available for download or via your favourite package manager.
v2.4.2 (2015-01-30)
- added custom visitor functionality for AQL traversals
This allows more complex result processing in traversals triggered by AQL. A few examples are shown in this article.
- improved number of results estimated for nodes of type
EnumerateListNode
andSubqueryNode
in AQL explain output
Harness the Power of Custom Visitors for AQL Graph Traversals
Jan blogged about some recent extensions for the AQL graph traversal functionality in ArangoDB. These extensions allow invoking user-defined JavaScript code for filtering and results generation in AQL queries that contain traversals.
This should make AQL graph traversals much more powerful than before.
Additionally, AQL graph traversals get more configurable, allowing to write traversal functions with control-flow logic and complex filtering. As a side-effect, this change facilitates writing specialized traversal functions with much higher efficiency than the general-purpose, cover-all-cases default ones.
New Address for GitHub: ArangoDB Updates

We have moved our ArangoDB Github repository from triAGENS to arangodb.
The database:
triAGENS/ArangoDB –> arangodb/arangodb
We’ve also moved:
- arangodb-php –> arangodb/arangodb-php
- elasticsearch-river-arangodb –> arangodb/elasticsearch-river-arangodb
For a certain amount of time the old triAGENS – repositories will redirect to the new ones.
New Foxx Debugging Preview: ArangoDB Updates
We are working hard to improve usability and simplify the usage of Foxx which will be shipped with version 2.5. of ArangoDB.
We have learned from the past and collected a lot of feedback, thanks to all people using Foxx already. It helped us to identify the following three important areas of Foxx that should be improved:
- Debugging of Foxx apps
- Getting started with Foxx
- Development Mode
(more…)
Building a self-learning game with ArangoDB, io.js & AngularJS in half a day.
With the ArangoDB Foxx Microservice Framework we’ve introduced an easy way to create a Web API right on top of the NoSQL database.
In early January Max challenged Andreas (AngularJS / NodeJS) that they could build a full-stack application within half a day.
The web application – in short – is a guessing game, in which the computer tries to guess a thing or animal you think of by asking a series of questions, for which you provide the answers. (more…)
Get the latest tutorials,
blog posts and news:
Thanks for subscribing! Please check your email for further instructions.