Some useful arangosh tips

00Documentation, Javascript

arangosh, The ArangoDB shell, provides some options that may simplify an ArangoDB user’s life. Some of these options have been added in version 1.1.2, and some options have been around for a while but are probably still less known. It’s time to showcase them.
More info

Looking for Beta Tester for the Windows Port


We have a beta version of the Windows port ready for testing. If you are feeling adventurous you can try the brand new beta port of ArangoDB 1.1.1 for windows. Please note, that currently this port only contains the server. The following pieces are still missing:

  • no management front-end to start/stop the server or install it as Windows service; the server must be started using a batch script
  • arangosh: instead you can use the ArangoDB shell using the admin front-end in the browser
  • arangoimp (bulk-importer)

To test the windows port:

  • download the installer
  • execute the MSI
  • this will install the server and the support files und “c:\triagens” (or whatever directory you select)
  • execute the batch script “serverExample.bat” in that directory
  • wait until you see “Have fun”
  • point your browser to “http://localhost:9000”

We have checked the MSI with Avira and tests it under XP, W7, W8. But there will be bugs. Please help us by reporting bugs you encounter using

If you have improvements or comments, please let us know using the Google group.

ArangoDB version 1.1 is out!


ArangoDB version 1.1 was released today. Builds for major distributions can be found on the downloads page.
The new version offers several improvements, namely:

  • an API for batch requests
  • partial updates (i.e. HTTP PATCH) for documents
  • improvements for AQL
  • disk synchronisation improvements
  • a statistics interface
  • SSL support

The complete list can be found here.

If you plan on upgrading from an existing ArangoDB 1.0 to version 1.1, please make sure to also read the upgrade notes.

MRuby, JIT, and ArangoDB at RuPy 2012

00API, Presentation, Ruby

@moonbeamlabs and I hold a workshop about ArangoDB and the Ruby driver Ashikawa, which will hopefully become one of the first DataMapper 2 NoSQL drivers. Currently, we are using the aequitas and virtus components of DataMapper 2.

Slides of the workshop can be found on slideshare:

I also gave a short talk about the possibilities of using MRuby in ArangoDB. In preparation for this talk, Achim did some experiments using JIT compilation of the RiteVM bytecode using LLVM. The results are consistent with result for other byte-compiled languages. You can expect a speed-up of 2 using LLVM. In order to gain larger improvements one needs type inference and optimizations to the method selection. Luckily within a context like ArangoDB one can expects to be dealing a lot with primitives types (floats and strings) and a fixed environment. So it seems plausible that one can eventually get near the performace of V8.

Comparing ArangoDB with CouchDB and MongoDB


The folks over at MongoDB have an article on their site on Comparing MongoDB and CouchDB.
They write:

“We are getting a lot of questions “how are mongo db and couch different?” It’s a good question: both are document-oriented databases with schemaless JSON-style object data storage. Both products have their place — we are big believers that databases are specializing and “one size fits all” no longer applies.”

The same applies to ArangoDB, we meet a lot of people especially developers using MongoDB who are interested in ArangoDB and ask us how it is different than other popular nosql databases. In this article we would like to add our answers to the questions asked.
More info

Feature preview: batch request API in ArangoDB 1.1


Clients normally send individual operations to ArangoDB in individual HTTP requests. This is straightforward and simple, but has the disadvantage that the network overhead can be significant if many small requests are issued in a row.

To mitigate this problem, ArangoDB 1.1 offers a batch request API that clients can use to send multiple operations in one batch to ArangoDB. This method is especially useful when the client has to send many HTTP requests with a small body/payload and the individual request results do not depend on each other.
More info

Do you like ArangoDB?
icon-githubStar this project on GitHub.