ArangoDB 1.4.11 Release: Enhancements & Bug Fixes

We have released a bug-fix release for ArangoDB 1.4. As it is carnival, we skipped 1.4.10 and moved directly to 1.4.11. Please note that we are also preparing the ArangoDB 2.0 release. Therefore it is important to use the

zypper install arangodb=1.4.11

(or whatever package manager you use) with an explicit version.

v1.4.11 (2014-02-27)
--------------------

* added SHORTEST_PATH AQL function 

  this calculates the shortest paths between two vertices, using the Dijkstra
  algorithm, employing a min-heap

  By default, ArangoDB does not know the distance between any two vertices and
  will use a default distance of 1. A custom distance function can be registered
  as an AQL user function to make the distance calculation use any document 
  attributes or custom logic:

      RETURN SHORTEST_PATH(cities, motorways, "cities/CGN", "cities/MUC", "outbound", {
        paths: true,
        distance: "myfunctions::citydistance"
      }) 

      // using the following custom distance function
      var aqlfunctions = require("org/arangodb/aql/functions");
      aqlfunctions.register("myfunctions::distance", function (config, vertex1, vertex2, edge) { 
        return Math.sqrt(Math.pow(vertex1.x - vertex2.x) + Math.pow(vertex1.y - vertex2.y));
      }, false);

* fixed bug in Graph.pathTo function

* fixed small memleak in AQL optimiser
* fixed access to potentially uninitialised variable when collection had a cap constraint

v1.4.10 (2014-02-21)
--------------------

* fixed graph constructor to allow graph with some parameter to be used

* added node.js "events" and "stream"

* updated npm packages

* added loading of .json file

* Fixed http return code in graph api with waitForSync parameter.

* Fixed documentation in graph, simple and index api.

* removed 2 tests due to change in ruby library.

* issue #756: set access-control-expose-headers on CORS response
  the following headers are now whitelisted by ArangoDB in CORS responses:
  - etag
  - content-encoding
  - content-length
  - location
  - x-arango-errors
  - x-arango-async-id
More info...

ArangoDB 1.4.9 Release: Enhancements & Bug Fixes

This version is deprecated. Download the new version of ArangoDB

A bug-fix release is available

v1.4.9 (2014-02-07) ——————- * return a document’s current etag in response header for HTTP HEAD requests on documents that return an HTTP 412 (precondition failed) error. This allows retrieving the document’s current revision easily. * added AQL function `SKIPLIST` to directly access skiplist indexes from AQL This is a shortcut method to use a skiplist index for retrieving specific documents in indexed order. The function capability is rather limited, but it may be used for several cases to speed up queries. The documents are returned in index order if only one condition is used. /* return all documents with mycollection.created > 12345678 */ FOR doc IN SKIPLIST(mycollection, { created: [[ ‘>’, 12345678 ]] }) RETURN doc /* return first document with mycollection.created > 12345678 */ FOR doc IN SKIPLIST(mycollection, { created: [[ ‘>’, 12345678 ]] }, 0, 1) RETURN doc /* return all documents with mycollection.created between 12345678 and 123456790 */ FOR doc IN SKIPLIST(mycollection, { created: [[ ‘>’, 12345678 ], [ ‘<=’, 123456790 ]] }) RETURN doc /* return all documents with mycollection.a equal 1 and .b equal 2 */ FOR doc IN SKIPLIST(mycollection, { a: [[ ‘==’, 1 ]], b: [[ ‘==’, 2 ]] }) RETURN doc The function requires a skiplist index with the exact same attributes to be present on the specified colelction. All attributes present in the skiplist index must be specified in the conditions specified for the `SKIPLIST` function. Attribute declaration order is important, too: attributes must be specified in the same order in the condition as they have been declared in the skiplist index. * added command-line option `–server.disable-authentication-unix-sockets` with this option, authentication can be disabled for all requests coming in via UNIX domain sockets, enabling clients located on the same host as the ArangoDB server to connect without authentication. Other connections (e.g. TCP/IP) are not affected by this option. The default value for this option is `false`. Note: this option is only supported on platforms that support Unix domain sockets. * fail if invalid `strategy`, `order` or `itemOrder` attribute values are passed to the AQL TRAVERSAL function. Omitting these attributes is not considered an error, but specifying an invalid value for any of these attributes will make an AQL query fail. * call global arangod instance destructor on shutdown * issue #755: TRAVERSAL does not use strategy, order and itemOrder options these options were not honored when configuring a traversal via the AQL TRAVERSAL function. Now, these options are used if specified. * allow vertex and edge filtering with user-defined functions in TRAVERSAL, TRAVERSAL_TREE and SHORTEST_PATH AQL functions: // using user-defined AQL functions for edge and vertex filtering RETURN TRAVERSAL(friends, friendrelations, “friends/john”, “outbound”, { followEdges: “myfunctions::checkedge”, filterVertices: “myfunctions::checkvertex” }) // using the following custom filter functions var aqlfunctions = require(“org/arangodb/aql/functions”); aqlfunctions.register(“myfunctions::checkedge”, function (config, vertex, edge, path) { return (edge.type !== ‘dislikes’); // don’t follow these edges }, false); aqlfunctions.register(“myfunctions::checkvertex”, function (config, vertex, path) { if (vertex.isDeleted || ! vertex.isActive) { return [ “prune”, “exclude” ]; // exclude these and don’t follow them } return [ ]; // include everything else }, false); * issue #748: add vertex filtering to AQL’s TRAVERSAL[_TREE]() function
More info...

ArangoDB 1.4.6: Enhancements & Bug Fixes Released

This version is deprecated. Download the new version of ArangoDB

A new release of ArangoDB is available for download.

  •  issue #736: AQL function to parse collection and key from document handle
  • added fm.rescan() method for Foxx-Manager
  • fixed issue #734: foxx cookie and route problem
  • added method `fm.configJson` for arangosh
  • include `startupPath` in result of API `/_api/foxx/config`
More info...

ArangoDB 1.4.5 Release: Enhancements & Bug Fixes

This version is deprecated. Download the new version of ArangoDB

A new release of ArangoDB is available for download

  • fixed issue #726: Alternate Windows Install Method
  • fixed issue #716: dpkg -P doesn’t remove everything
  • fixed bugs in description of HTTP API `_api/index`
  • fixed issue #732: Rest API GET revision number
  • added missing documentation for several methods in HTTP API `/_api/edge/…`
  • fixed typos in description of HTTP API `_api/document`
  • defer evaluation of AQL subqueries and logical operators (lazy evaluation)
  • Updated font in WebFrontend, it now contains a version that renders properly on windows
  • generally allow function return values as call parameters to AQL functions
  • fixed potential deadlock in global context method execution
  • added override file “arangod.conf.local” (and co)
More info...

ArangoDB Xmas Edition 1.4.4: Release Notes and Updates

This version is deprecated. Download the new version of ArangoDB

We have released the bug-fix version 1.4.4 of ArangoDB. While this version only contains minor fixes, we have switched to a new build system for Windows. We are now using Visual Studio 2013 and CMAKE to build ArangoDB under Windows. This also includes a new installer (Nullsoft Scriptable Install System). ArangoDB can now be installed as a service under Windows.

Unix The configuration is now called “arangod.conf” instead of “arangod-uid.conf” in order to avoid confusion.

Windows The default installation directory is “c:Program FilesArangoDB-1.x.y”. During the installation process you may change this. In the following description we will assume that ArangoDB has been installed in the location ROOTDIR. You have to be careful when choosing an installation directory. You need either write permission to this directoy or you need to modify the config file for the server process. In the latter case the database directory and the Foxx directory should must be writable by the user.

Installating for a single user Select a different directory during installation. For example “C:/Users//arangodb” or “C:/ArangoDB”. Installating for multiple users Keep the default directory. After the installation edit the file “ROOTDIR/etc/arangodb/arangod.conf”. Adjust the “directory” and “app-path” so that these paths point into your home directory.

[database] directory = @HOMEDRIVE@/@HOMEPATH@/arangodb/databases [javascript] app-path = @HOMEDRIVE@/@HOMEPATH@/arangodb/apps

Create the directories for each user that wants to use ArangoDB.

Installating as Service Keep the default directory. After the installation open a command line as administrator (search for “cmd” and right click “run as administrator”)

cmd> arangod –install-service INFO: adding service ‘ArangoDB – the multi-purpose database’ (internal ‘ArangoDB’) INFO: added service with command line ‘”C:Program Files (x86)ArangoDB 1.4.4binarangod.exe” –start-service’

Open the service manager and start ArangoDB. In order to enable logging edit the file “/etc/arangodb/arangod.conf” and uncomment the file option.

[log] file = @ROOTDIR@/var/log/arangodb/arangod.log
More info...

ArangoDB Insert Performance Measurement: Techniques & Insights

Measuring ArangoDB insert performance

ArangoDB offers a few APIs to insert documents. First, there is an HTTP API for bulk document imports. This API was already covered in another post. In general, the bulk import API should always be used when the task is to create many documents into a collection at once, as fast as possible. This works well if the documents are known in advance, e.g. when importing data from a file.

(more…)

More info...

ArangoDB 1.4: Introducing Multiple Databases Feature

This version is deprecated. Download the new version of ArangoDB

ArangoDB 1.4 provides support for multiple databases, a feature often requested by our users.

Motivation In the old days, ArangoDB provided the option to create multiple collections, but all collections were created on the same level. As there was no hierarchy of collections, there was a chance of having a collection name clash when using one ArangoDB server for multiple applications. For example, running multiple applications inside the same ArangoDB server did not work if all applications created their own

users collections. Workarounds, such as prefixing collection names, were required to make older ArangoDB versions play nicely with multiple applications. With ArangoDB 1.4, multiple databases are supported natively. Workarounds such as prefixing collection names with application names, can go away now.

(more…)
More info...

ArangoDB 1.4: Replication Feature Overview | ArangoDB ’13

ArangoDB 1.4

comes with asynchronous master-slave replication. The new replication feature should make it much easier to create a backup from a running ArangoDB server. For example, a second ArangoDB instance can now be used as a slave by cloning all data from the master. The slave will be populated in the background while the master is running and accepting requests – not disrupting the master operations.

(more…)

More info...

ArangoDB 1.4.1 Available: Discover Enhancements | ArangoDB ’13

This version is deprecated. Download the new version of ArangoDB

The bug-fix release 1.4.1 of ArangoDB is available for download. The fixed issues can be found in the changelog. It also fixes a problem with some of the build packages. The arangod daemon process was under some distributions started as root.

More info...

ArangoDB 1.4.0 on Raspberry Pi: Database Power for Small Devices

This is a follow to the post about ArangoDB 1.3 running on Raspberry PI. With the release of ArangoDB 1.4.0 I now tried to compile it again. As all patches required for 1.3 are part of 1.4.0 it is now much easier.

  pi> sudo apt-get install libreadline6 libreadline6-dev libssl-dev
  pi> git clone -b v1.4.0 https://github.com/triAGENS/ArangoDB
  pi> cd ArangoDB
  pi> ./configure --enable-all-in-one-icu --enable-all-in-one-v8 --enable-all-in-one-libev --disable-mruby
  pi> make

After a few hours, everything (including V8 & ICU) is compiled and you can start ArangoDB on a raspberry

  pi> mkdir /tmp/testbase
  pi> ./bin/arangod -c etc/relative/arangod.conf /tmp/testbase

and the shell in another window

  pi> ./bin/arangosh -c etc/relative/arangosh.conf

or point your browser to http://pi:8529/

However, if you do not want to wait for hours, I’ve tried to build a debian package, which can be downloaded from here:

    pi> wget http://www.arangodb.com/repositories/raspbian/arangodb-1.4.0-raspbian.deb
    pi> sudo dpkg -i arangodb-1.4.0-raspbian.deb

This has not been tested in detail. So any feedback or improvements are welcome.

More info...

Get the latest tutorials,
blog posts and news: