Lucas Michael at FrOSCon: ArangoDB Community Event

Like every year, the ArangoDB team visited the FrOSCon. FrOSCon is the yearly Free and Open Source conference in St. Augustin, a small city near Cologne where the ArangoDB headquarters are. This year two talks were given by us, one by Michael and one by me, Lucas.

Michael gave a talk about “Multi-Model NoSQL Databases” and gave an introduction to Polyglot persistence and NoSQL. He also co-organized the JavaScript track of the conference with topics ranging from Angular JS to Property-based testing.
If you missed his talk, you can watch it here:
(more…)

More info...

Documentation Review & Roadmap: ArangoDB Updates

We want to present you our growing documentation. A few weeks ago we published the new documentation with a completely new look and a far better structure than before.

Since than we fixed some small issues and rewrote some of the sections. In addition you can fold the code examples for a better overview. Now these code examples will be generated before the release of a new documentation. Because of that the code will be accurate. Now you have the possibility to download .epub or .mobi for your ebook-reader. This way you can explore ArangoDB comfortable on a trip even if you have no internet.

The foundation of our new documentation is build and we think it will help you to understand ArangoDB and its functions. Of course there are some plans for the near future to make our documentation more extensive.

We want to make the documentation even more clearer. So you can find everything you desire as soon as possible. It is planned to add an extra subchapter in most of the chapters with a list of all functions. This way you have a better overview about all functions with a brief explanation. With this list you don’t have to scroll through a whole chapter to find a specific function.

(more…)

More info...

New feature: Multi Collection Graphs

This version is deprecated. Download the new version of ArangoDB

With the 2.2 release we proudly announce that we now offer the feature of multi collection graphs. This allows you to group an arbitrary set of ArangoDB collections into one graph. In order to do this grouping you execute the following steps in arangosh or Foxx: 1. Require the general-graph module and create a graph.

var graph_module = require("org/arangodb/general-graph");
var graph = graph._create("myGraph");
  1. Add collections to be used as vertex collections. If the collections are not yet created, ArangoDB will create them for you.
graph._addVertexCollection("person");
graph._addVertexCollection("publication");
graph._addVertexCollection("university");
graph._addVertexCollection("company");
  1. Create edge definitions between your vertex collections. These definitions create edge collections and allow you to store edges where source and target vertices come from the collections written in the definition. If you give vertex collections unknown to the graph they will be added to the graph. (more…)
More info...

ArangoDB 2.2.0 Released: Explore New Features & Enhancements

This version is deprecated. Download the new version of ArangoDB

We are happy to announce the release of 2.2.0. All the open issue mentioned in the beta release are now fixed.

Features and Improvements The following list shows in detail which features have been added or improved in ArangoDB 2.2. ArangoDB 2.2 also contains several bugfixes that are not listed here.

AQL improvements

Data modification AQL queries Up to including version 2.1, AQL supported data retrieval operations only. Starting with ArangoDB version 2.2, AQL also supports the following data modification operations:

  • INSERT: insert new documents into a collection
  • UPDATE: partially update existing documents in a collection
  • REPLACE: completely replace existing documents in a collection
  • REMOVE: remove existing documents from a collection

(more…)

More info...

Modifying AQL

ArangoDB comes with a powerful query language, called AQL. It combines all the different aspects in any easy-to-use query language. You can use joins as in SQL or graph queries as in Cypher. However, up to now it only supported read-queries.

FOR u IN users 
  FOR c IN cities 
    FILTER u.zip == c.zip 
    RETURN { 'name': u.name, 'city': c.name }

Allows you to join the name of city a persons lives in. If you want to follow the social graph and mix in the neighbors, simply add a graph query.

FOR u IN users
  FOR c IN cities
    FILTER u.zip == c.zip
    RETURN {
      'name': u.name,
      'city': c.name, 
      'knows': GRAPH_NEIGHBORS('social', u)[*].vertex.name
    }

(more…)

More info...

Hate OpenSSL? Get Started with LibreSSL | ArangoDB Blog

ArangoDB has an HTTP interface to talk to its clients. Sometimes people want to secure this connection and use SSL or TLS instead. That is where we are using OpenSSL. It provides all the methods to implemented HTTPS on top of an HTTP server. It worked well and the corresponding code is only some 300 lines of C++ code. The biggest obstacle was the documentation. You can basically only learn from examples. That’s what we did. However, we finally encountered a bizarre bug. ArangoDB uses a number of threads to handle I/O in an asynchronous manner. The underlying library for I/O is libev. We span three threads by default each with its own event loop. With HTTP everything is working fine and even HTTPS was no problem.

Until we made a mistake during testing. We started ArangoDB as HTTPS server and ran our unittests. Everything showed green until we connected with an HTTP client to the HTTPS port by accident. The client could not connect and returned an error message – as expected. Meanwhile the unittests started to fail for a few seconds and then recovered. What! This is a completely different socket connection. How is it possible that one connection influences the other?

First idea: We managed to somehow mangle the sockets. So we started to print out file descriptors for accept, read and write, close. As there are a lot of unittests, the output is quite messy. But after hours of debugging, we convinced yourself that everything looked fine.
(more…)

More info...

ArangoDB 2.2.0 Beta: Try Out Exciting New Features!

This version is deprecated. Download the new version of ArangoDB

We are proud to announce the beta release of ArangoDB 2.2. It is a major step forward, improving the usability of AQL and graphs a lot. As always, a lot of small improvements are incorporated into your favourite NoSQL database – we will list them in a separated blog entry. However, the three major improvements are

  • a new and improved graph module
  • modifying AQL
  • a true write-a-head log

While the latter is a big step on the way to automatic failover and synchronous replication, it is mostly hidden from the user. A more detailed description will follow in the next days. The new graph module is directly visible and intended to be used by you. Graphs are much more flexible now. You can easily use more than one vertex collection to group your vertex documents into “classes”. For example, for a bipartite graph, use two vertex collections – one for each part. You can even group your edges. Use one collection for each type (“friendship” and “alliance”). Or what about Graphs-on-Graphs! Why on earth would you like to do that? Well, consider a street map, where the junctions are vertices, the edges are street segments between junctions. Now put another graph on top, to model streets as segments – again more information is coming its way. The graph viewer works with these extended graphs and even allows you to explore sharded graphs with billions of nodes. (more…)

More info...

ArangoDB 2.1.2 & 2.0.9 Releases: Enhancements & Bug Fixes

This version is deprecated. Download the new version of ArangoDB

New maintenance releases of ArangoDB are available from our download page or via your favourite package manager.

ArangoDB 2.1.2

v2.1.2 (2014-06-15)

  • fixed check-version for empty directory
  • moved try/catch block to the top of routing chain

ArangoDB 2.0.9

v2.0.9 (2014-06-06)

  • fixed issue #883: arango 2.1 – when starting multi-machine cluster, UI web does not change to cluster overview
More info...

New ArangoDB Documentation Released: Explore Now!

Dear ArangoDB users, we are proud to announce our new manual for ArangoDB. It is a complete overhaul, with huge changes and improvements, which became necessary because the old manual grew so fast and was edited by so many people, that it became inconsistent. We would appreciate if you could give us feedback. Either by writing comments in the google groups or by opening issues in the GitHub repository.

You can find our new manual here.

Changes highlights:

  • Everything in one place: user manual, developers manual and adminstrators manual
  • Completely new, consistent and themable design
  • Improved navigation through sidebar
  • Powerful search function
More info...

ArangoDB 2.1.1 Released: Enhancements & Bug Fixes

This version is deprecated. Download the new version of ArangoDB

A maintenance release for ArangoDB 2.1 is available from your download page.

v2.1.1 (2014-06-06)

  • fixed random generation under MacOSX
  • fixed issue #883: arango 2.1 – when starting multi-machine cluster, UI web does not change to cluster overview
  • fixed dfdb: should not start any other V8 threads
  • cleanup of version-check, added module org/arangodb/database-version, added –check-version option
  • fixed issue #881: [2.1.0] Bombarded (every 10 sec or so) with “WARNING format string is corrupt” when in non-system DB Dashboard
More info...

Get the latest tutorials,
blog posts and news: