Creating Multi-Game Highscore Lists

I just came across a question about how to create highscore lists or leaderboards in ArangoDB, and how they would work when compared to Redis sorted sets.

This blog post tries to give an answer on the topic and also detailed instructions and queries for setting up highscore lists with ArangoDB. The additional section “Extensions” explains slightly more advanced highscore list use cases like multi-game highscore lists, joining data and maintaining a “last updated” date.
(more…)

Posted in API, Documentation, Query Language | 3 Comments

Create an ArangoDB cluster on Google Compute Engine with a single command

Last week we’ve released the first version of our new deployment tool for cloud computing platforms with Digital Ocean support. Today we show how to deploy an ArangoDB cluster on Google Compute Engine with a single command.

Google Compute Engine

To easy-deploy an ArangoDB cluster on Google Compute Engine you just need to install the official gcloud tool, download a single bash script and watch the tool take care of the rest for you.

Google Compute Engine prerequisites

The script needs an available and configured Google Project.

ProjectID
  • Create a project (GCE Projects).
  • Remember your project-id, you’ll need that later for gcloud configuration.
  • Enable Google Compute Engine API (more…)

Posted in Documentation | Leave a comment

Updating Documents with an Arangoimp Import

Inspired by the feature request in Github issue #1298, we added update and replace support for ArangoDB’s import facilities.

This extends ArangoDB’s HTTP REST API for importing documents plus the arangoimp binary so they can not only insert new documents but also update existing ones.

Inserts and updates can also be mixed in a single import run. What exactly will happen is configurable by setting arangoimp’s new command-line option --on-duplicate.

By default, error will be reported if a document already exists. This behavior can be changed by setting --on-duplicate to a value of update, replace or ignore. Here is an example result of an import with duplicated keys:

So, if you want to aggregate data from several data files, you can try the new import command-line option --on-duplicate.

In a blog post, Jan provides a few usage examples.

Posted in Documentation, Performance | Leave a comment

Be more lazy, use a custom .arangod.rc

How often did you typed

in the arangod console?

If you are familiar with the arangosh JavasScript shell than you probably use a custom .arangosh.rc startup script in your home-directory which defines your own extra variables and functions that you need often.

Now we’ve also added support for a file .arangod.rc that will be executed on server start. For example, you could put the following into the .arangod.rc file:

You’ll never have to go through the history again to add your favourite function again. (Available in devel-branch, coming to the next releases soon).

Posted in Documentation | Leave a comment

Using ArangoDB as a Logstash Output

Logstash

Inspired by a question on StackOverflow, I did some investigation about how to make Logstash send log events to ArangoDB.

There is no dedicated Logstash output plugin for ArangoDB on the Logstash plugins page, so I had already accepted to write one on my own.

Browsing the plugins page for inspiration, I found an HTTP output plugin for Logstash. It seems to be general enough that it can send the log event in JSON format to any HTTP-speaking backend.

ArangoDB’s API is JSON over HTTP, so it sounded like a perfect match. I briefly tried it out and it seemed to work fine.

Read more on Jan’s Blog

Posted in Documentation | Leave a comment

Getting started with Guacamole on Rails

Using ArangoDB as your main database is a good idea for various reasons. What I personally like about it is its query language AQL. I used relational databases in the past as my main database and writing statements in a language similar to SQL was a great way for me to get started with ArangoDB.

Having a HTTP based interface (like all the cool kids these days) we could build applications running solely on top of our database. That’s rather nice but then we would have to take care of all the gory details. So for our app we want at least an abstraction layer on top of the HTTP API. Better yet, something assisting us with modeling our domain logic.

Meet Guacamole: A object-document-mapper that takes care of all the busywork and allows you to focus on your domain. (more…)

Posted in API, Documentation, Ruby | 1 Comment

Cookbook – Recipes to make with ArangoDB

It’s new – and just for you! With the new ArangoDB Cookbook we want to guide you thru various challenges that might arise in your daily business with NoSQL – and ArangoDB in particular.

You have a problem with or need an introduction to NoSQL data modeling / scaling ArangoDB / building Foxx apps / graph processing or something related to your favorite programming language? Then have a look if there’s a recipe match in the Cookbook!

Create your own recipes and help others in the ArangoDB community. We appreciate every participation that makes the cookbook a valuable source for ArangoDB users. Just write your problem description and solution in plain markdown and start a pull request on Github Git:ArangoDB/Cookbook.

Need an example?

Lets assume you checked the foxx introduction on our website and now you want to build your own Foxx app, but you don’t know how to start.

(more…)

Posted in Documentation | 6 Comments

Modeling Data in MongoDB vs ArangoDB

MongoDB is a document DB whereas ArangoDB is a multi-model DB supporting documents, graphs and key/values within a single database. When it comes to data modeling and data querying, they pursue somewhat different approaches.


In a Nutshell: In MongoDB, data modeling is “aggregate-oriented”, avoiding relations and joins. On the other side, everybody has probably used relational databases which organize the data in tables with relations and try to avoid as much redundancy as possible. Both approaches have their pros and cons. ArangoDB is somewhat in-between: You can both model and query your data in a “relational way” but also in an “aggregate-oriented way”, depending on your use case. ArangoDB offers joins, nesting of sub-documents and multi-collection graphs. (more…)

Posted in Architecture, Documentation, Graphs, Query Language | Tagged , , , | 3 Comments

ArangoDB new documentation released

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 neccessary 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
Posted in Documentation, General, Releases | Leave a comment

Multiple Databases – New Feature in Version 1.4

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…)

Posted in Documentation, Releases | Leave a comment