ArangoDB at NoSQL Matters Paris: Insights & Innovations
If you are interested in NoSQL and come from France, the NoSQL matters conference in Paris is your place to go. ArangoDB contributes with a workshop and a talk and is a silver sponsor of the conference as well. You can meet our team at the exhibition space and ask your ArangoDB questions in person.
Tickets are available for both days, starting at €299 for the conference pass.
Anyway, come and meet us at the historical Tapis Rouge venue in the heart of Paris city!
Building Single Page Applications with Angular.JS and Foxx
Workshop on March, 26th
Angular.JS is Google’s open-source JavaScript framework optimized to build awesome single page applications. This ease of use has convinced many developers to switch. With MVC in the browser all you need from your backend is an easy way to define an API for your data.- That’s where Foxx excels.
In this training session we will build a simple single page application. Showing you how to use Angular.JS and what is a good way to define your model using Foxx.
Polyglot Persistence & Multi-Model NoSQL Databases
Talk on March, 27th (10 am)
In many modern applications the database side is realized using polyglot persistence – store each data format (graphs, documents, etc.) in an appropriate separate database. This approach yields several benefits, databases are optimized for their specific duty, however there are also drawbacks:
- keep all databases in sync
- queries might require data from several databases
- experts needed for all used systems
A multi-model database is not restricted to one data format, but can cope with several of them. In this talk i will present how a multi-model database can be used in a polyglot persistence setup and how it will reduce the effort drastically.
ArangoDB in San Francisco: Exciting Developments & Events
Join parts of the ArangoDB team in San Francisco. Max and Claudius are visiting the Bay Area from mid-February till end of March. Starting with the StrataConf in San Jose, Feb 17–20, 2015 Max and Claudius want to meet people, start cooperations, visit meetups and tell people in the Bay Area about ArangoDB.
If you know any hackerspaces we definitely should go, drop us a line and we will try to be there. We would be happy to see some of you guys in person and to respond to every question you may have about ArangoDB.
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.
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.
Explaining AQL Queries in a Fancier Way: ArangoDB Tutorial
I have been looking at many AQL queries during the last few weeks…
Looking back, I can say that the JSON query execution plans provided by the explain()
method have provided me with a lot of useful information about how the AQL optimizer had transformed a given query. This has helped testing and improving the query optimizer a great deal.
However, the JSON output produced by explain()
is so detailed that even for the simplest cases queries it will span multiple screens. This is far too much for quickly assessing what a query will be doing and how it will be executed.
I therefore quickly put together a function that provides a much more compact explain output. Its input parameter is a query string, which it will send to the ArangoDB server to have it explained.
But it doesn’t print a voluminous JSON object. This one is for developers with a full schedule.
Bulk Inserts: MongoDB vs CouchDB vs ArangoDB (Dec 2014)
More than two years ago, we compared the bulk insert performance of ArangoDB, CouchDB and MongoDB in a blog post.
The original blog post dates back to the times of ArangoDB 1.1-alpha. We have been asked several times to re-run the tests with the current versions of the databases. So here we go.
November Recap: ArangoDB Updates & Highlights
November 2014 was a month where our staff (and the cute ArangoDB Foxx) collected lot's of miles by visiting conferences, meetups and inspiring people in Europe, Africa, the US and Canada. If you missed a talk, there are plenty of slideshares / recordings available.
Release 2.3
Everyone who was not on a plane worked on ArangoDB 2.3 - our major release with a re-written query optimizer that optimizes execution plans, added/improved AQL functions and several performance improvements (@see Query Optimizer Tour by Jan). You can download ArangoDB 2.3.1 and start optimizing.
Frank added a docker file, so you might start shipping ArangoDB in a docker container as well.
Extensibility Framework Foxx
Our JavaScript extensibility framework Foxx (@see this new 2:45min ArangoDB Foxx intro by Lucas) also benefits from our 2.3 release, adding job queues and session handling for Foxx apps, plus 3 bundled apps for user management, session and authentication.
With a blog post series started last week on Building Hypermedia APIs Lucas introduces the concepts of hypermedia in JSON. The second post will follow later today, explaining how to design a complete web API with a state-chart / state-machine. Finaly, the third post will describe how you can use the new FoxxGenerator (upcoming 2.4 release) to build your API.
Can't wait? Then use our newly introduced ArangoDB technical previews to get your hands on our latest features. The 2.4.1 technical preview can be used to test the FoxxGenerator feature.
ArangoDB Driver Support
We also worked on a new Java Driver which is fully documented and comes with an additional blog post on Graph handling with the Java Driver.
Great effort from the community leads to several more driver updates, improved documentation and ArangoDB 2.3 support. Have a look at the drivers page to see if your favorite programming language is one of the 16 supported.
Cookbook - Recipes to make with ArangoDB
We have introduced an ArangoDB Cookbook as a developers source that provides easy to use recipes for common tasks / problems to solve in or with ArangoDB. Recipes explain how-to start a docker container with ArangoDB, Fulldepth graph traversals or how to write your first Foxx app.
Please add your recipes via Github to extend this resource for relevant hands-on solutions!
Blog Posts
Several blog posts you might have missed last month:
- Building Hypermedia APIs – Links and Forms in JSON
- Modeling Data in MongoDB vs ArangoDB
- Docker Integration
- A brief introduction to the PREGEL module for large-scale graph processing.
- How to use the ArangoDB Java Driver in batch and asynchronous mode
- ArangoDB Java Driver and Graphs - Part 1
- ArangoDB Java Driver and Graphs - Part 2
- The new ArangoDB Java Driver
- A Tour Around the New AQL Query Optimizer
- Improved Non-unique Hash Indexes in 2.3
#FoxxOnTour
This month we didn't only work on several releases, we also flew around the world visiting many conferences, user groups and awesome people, guarded by our lovely Foxx. Places we've been in November:
- Barcelona at the NoSQL Matters
- Casablanca at the jmaghreb
- New York at the Java Meetup Group, the SQL NYC, The NoSQL & NewSQL Database Meetup and the New York PHP Meetup
- Boston at the Node.js in the wild and the Boston Software Engineers
- Madrid at the Big Data Spain
- Toronto at the Full Stack Toronto
- Posen at the Polyconf
And here are some pictures of our Foxx having fun at different places all around the world, tagged with #FoxxOnTour:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Building a Hypermedia API with JSON: ArangoDB Tutorial
When we create websites we don’t just create single pages that have no connection to other Web pages. From the beginning, hyperlinks were part of the core concept of the World Wide Web and for that reason HTML. Links are so essential to the Web that they are even used to rank the popularity of the Web pages on search engines. And who hasn’t gone on a journey through Wikipedia clicking link after link? Even though we all know and appreciate the importance of links on Websites, we rarely use links in our Web APIs. (more…)
Running ArangoDB Made Simple: Step-by-Step Guide
docker run -p 8529:8529 arangodb/arangodb
I've created an automated build repository on docker, so that you can easily start a docker container with the latest stable release. If you miss anything in the container, please let me know. Thanks to frodenas, hipertracker, joaodubas, webwurst who also created dockerfiles.
ArangoDB
A distributed open-source database with a flexible data model for documents, graphs, and key-values. Build high performance applications using a convenient sql-like query language or JavaScript extensions.
Start a ArangoDB instance
In order to start an ArangoDB instance run
unix> docker run --name arangodb-instance -d arangodb/arangodb
By default ArangoDB listen on port 8529 for request and the image includes EXPOST 8529
. If you link an application container, it is automatically available in the linked container. See the following examples.
Using the instance
In order to use the running instance from an application, link the container
unix> docker run --name my-app --link arangodb-instance
Running the image
In order to start an ArangoDB instance run
unix> docker run -p 8529:8529 -d arangodb/arangodb
ArangoDB listen on port 8529 for request and the image includes EXPOST 8529
. The -p 8529:8529
exposes this port on the host.
Command line options
In order to get a list of supported options, run
unix> docker run -e help=1 arangodb/arangodb
Persistent Data
ArangoDB use the volume /data as database directory to store the collection data and the volume /apps as apps directory to store any extensions. These directory are marked as docker volumes.
See docker run -e help=1 arangodb
for all volumes.
A good explanation about persistence and docker container can be found here: Docker In-depth: Volumes, Why Docker Data Containers are Good Using host directories
Using host directories
You can map the container's volumes to a directory on the host, so that the data is kept between runs of the container. This path /tmp/arangodb is in general not the correct place to store you persistent files - it is just an example!
unix> mkdir /tmp/arangodb
unix> docker run -p 8529:8529 -d \
-v /tmp/arangodb:/data \
arangodb
This will use the /tmp/arangodb directory of the host as database directory for ArangoDB inside the container. Using a data container
Using a data container
Alternatively you can create a container holding the data.
unix> docker run -d --name arangodb-persist -v /data ubuntu:14.04 true
And use this data container in your ArangoDB container.
unix> docker run --volumes-from arangodb-persist -p 8529:8529 arangodb
unix> docker run -d --name arangodb-persist -v /data tianon/true true
Images
Building an image
Simple clone the repository and execute the following command in the arangodb-docker folder
unix> docker build -t arangodb .
This will create a image named arangodb.
ArangoDB 2.3 Release: New Features & Enhancements
This version is deprecated. Download the new version of ArangoDB
The new query optimizer is ready to rock the world. We are proud to announce the release of ArangoDB 2.3, available for download now. ArangoDB 2.3 is available for Linux, Windows and Mac and provides support for 16 programming languages.
Overhauled Query Optimizer
The query optimizer and executor for AQL queries have been completely overhauled. Especially the optimization of distributed queries has been improved significantly.
The query optimizer can now apply much more optimizations than in previous versions of ArangoDB. We have tried to keep the new version as compatible as possible with ArangoDB 2.2.
Have a look at Jan’s blog post “Tour around new AQL query optimizer” or read the optimizer documentation to get familiar with this new feature.
Powerful Foxx Enhancements
We can’t wait to get your feedback, so we’ve released some great new Foxx features in 2.3 with more to come in the next release.
With the new job queues feature you can run async jobs to communicate with external services, Foxx queries make writing complex AQL queries much easier and Foxx sessions will handle the authentication and session hassle for you. (more…)
Get the latest tutorials,
blog posts and news:
Thanks for subscribing! Please check your email for further instructions.