ArangoDB 2.0.1 Release: Enhancements & Bug Fixes

This version is deprecated. Download the new version of ArangoDB

We have just release 2.0.1, which is bug-fix release for 2.0.

v2.0.1 (2014-03-31) ——————- * make ArangoDB not send back a `WWW-Authenticate` header to a client in case the client sends the `X-Omit-WWW-Authenticate` HTTP header. This is done to prevent browsers from showing their built-in HTTP authentication dialog for AJAX requests that require authentication. ArangoDB will still return an HTTP 401 (Unauthorized) if the request doesn’t contain valid credentials, but it will omit the `WWW-Authenticate` header, allowing clients to bypass the browser’s authentication dialog. * fixed isses in arango-dfdb: the dfdb was not able to unload certain system collections, so these couldn’t be inspected with the dfdb sometimes. Additionally, it did not truncate corrupt markers from datafiles under some circumstances * added `changePassword` attribute for users * fixed non-working “save” button in collection edit view of web interface clicking the save button did nothing. one had to press enter in one of the input fields to send modified form data * fixed V8 compile error on MacOS X * prevent `body length: -9223372036854775808` being logged in development mode for some Foxx HTTP responses * fixed several bugs in web interface dashboard * fixed issue #783: coffee script not working in manifest file * fixed issue #781: Cant save current query from AQL editor ui * bumped version in `X-Arango-Version` compatibility header sent by arangosh and other client tools from `1.5` to `2.0`. * fixed startup options for arango-dfdb, added details option for arango-dfdb * fixed display of missing error messages and codes in arangosh * when creating a collection via the web interface, the collection type was always “document”, regardless of the user’s choice
More info...

AshikawaCore 0.10 Released: Enhancements & Updates | ArangoDB

We just released version 0.10 of the low-level ArangoDB Ruby driver Ashikawa::Core. It supports both ArangoDB 1.4 and 2.0. For more details see the release notes.

We’re also working on the first version of Guacamole: It is an ODM for Rails and is based upon Ashikawa::Core.

More info...

ArangoDB Sharding Release 2.0.0-rc1: Enhanced Scalability

This version is deprecated. Download the new version of ArangoDB

Sharding has come to ArangoDB. We are proud to announce the release candidate of ArangoDB 2.0.0. The ArangoDB 2 is API downward compatible to ArangoDB 1.4. ArangoDB 2 can be used as standalone or distributed system. You can use the same packages / binaries for a stadalone and a sharding setup. See “setup cluster” for how to enable the cluster features of ArangoDB 2 and how to distribute your data to many servers. Please note that the datafiles are not compatible. ArangoDB 2 will convert these files to a newer format. If you only want to play with the new sharding features, make sure that you use a separate database directory. Where to go next? – a general introduction – how set up a distributed cluster. coming soon: guidelines for API implementors

More info...

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...

Cheerio with Node.js and CoffeeScript | ArangoDB Tutorial

Foxx’ main purpose is to create a beautiful API for your AngularJS, EmberJS or Backbone.js front-end. However, sometimes you want to do more. We, for example, needed to parse some HTML files. ArangoDB is capable of using some Node.js modules, but unfortunately Cheerio was not one of those. One problem was that we did not support loading of JSON data modules. So, this was a good excuse to rewrite the module loader in ArangoDB to make it even more Node.js-friendly.

With those improvements, that are currently available in ArangoDB’s devel branch. You can now also “require” a JSON data file. These files must have a filename ending with “.json”. If the filename ends with “.coffee” it is treated as coffee-script file and automatically compiled into JavaScript.

A Foxx app can now contain its own “node_modules” directory to include Node modules which it requires. This makes it much easier to deploy a Foxx app.

More info...

CAP, Google Spanner, & Survival: Eventual Consistency | ArangoDB

In Next gen NoSQL: The demise of eventual consistency a recent post on Gigaom FoundationDB founder Dave Rosenthal proclaims the demise of eventual consistency. He argues that Google Spanner “demonstrates the falsity of a trade-off between strong consistency and high availability”. In this article I show that Google Spanner does not disprove CAP, but rather chooses one of many possible compromises between total consistency and total availability. For organizations with a less potent infrastructure than Google other compromises might be more suitable, and therefore eventual consistency is still a very good idea, even for future generations of nosql databases.

(more…)

More info...

ArangoDB at FOSDEM 2014: Insights & Presentations

FOSDEM is an absolutely open and free conference in Brussels, Belgium. The conference offers an impressive amount of developer rooms discussing a broad range of technical topics, including NoSQL and graphs.

After a funny and productive ArangoDB hackathon weekend Frank and I arrived at FOSDEM on Sunday noon. We were looking forward to the talks in the graph devroom, but unfortunately for us it was not possible to enter the room (it was overfull, indicating a great quality of talks).
At the next speakers change Frank and I managed to slip into the room and could enjoy two inspiring talks by Neo4J.
Afterwards it was my turn to present the graph visualization interface in ArangoDB in a still crowded room (slides).
After my presentation, we handed out all our ArangoDB t-shirts to our fans.

Michael handing out T-Shirts to the audience

Michael handing out T-Shirts to the audience

All together it was a great experience and a really huge amount of people visiting the same conference which impressed me a lot.
Thanks for the team at the Graph Processing devroom for giving me the opportunity to speak and for organizing such a great devroom.
We will meet again next year.

so long,
Michael

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...

Get the latest tutorials,
blog posts and news: