A few weeks ago I wrote about ArangoDB’s specialized export API.
Estimated reading time: 1 minutes
Waiting for a git pull to complete over an 8 KiB/s internet connection is boring. So I thought I’d rather use the idle time and quickly write about some performance improvements for certain AQL functions that were recently completed and that will become available with ArangoDB 2.6.
The improvements affect the following AQL functions:
Estimated reading time: 8 minutes
ArangoDB 2.6 will feature an alternative hash implementation of the AQL COLLECT operation. The new implementation can speed up some AQL queries that can not exploit indexes on the COLLECT group criteria.
This blog post provides a preview of the feature and shows some nice performance improvements. It also explains the COLLECT-related optimizer parts and how the optimizer will decide whether to use the new or the traditional implementation.
Introduction to COLLECT
A quick recap: in AQL, the COLLECT operation can be used for grouping and optionally counting values.
Estimated reading time: 10 minutes
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.
A highscore list in Redis
Highscore lists are normally used to quickly determine who’s currently at the top, so we obviously..
Estimated reading time: 2 minutes
Data-modification queries were enhanced in ArangoDB 2.4 to be able to also return the inserted, update or removed documents. For example, the following statement inserted a few documents and also returned them with all their attributes:
FOR i IN 1..10
INSERT { value: i } IN test
LET inserted = NEW
RETURN inserted
The syntax for returning documents from data-modification queries only supported the exact above format. Using a LET clause was required, and the RETURN clause was limited to returning the variable introduced by the LET. These syntax restrictions have been lifted in the devel..
Estimated reading time: 9 minutes
This version is deprecated. Download the new version of ArangoDB
We are proud to announce the latest release of ArangoDB, adding a bunch of new features and lot’s of improvements to existing ones. ArangoDB 2.5 is available for download now and could be installed from your favourite package manager.
See the previous blogposts on sparse indexes performance, ES6 features in ArangoDB, improved Foxx development process or API Key management to learn more about ArangoDB 2.5 and check the manual for a deeper dive into specific features.
The AWS image of ArangoDB 2.5 will be available shortly.
..
Estimated reading time: 1 minutes
I often find myself searching for certain commits using git log and friends. While I really love the power and flexibility that come with the git and other Unix command-line tools, sometimes it can be more convenient to use a database to filter and aggregate commit data.
I gave it a quick try yesterday and imported the commit history of ArangoDB’s Git repository into ArangoDB and ran some queries on the data.
Estimated reading time: 4 minutes
Contained in 2.5 are some small but useful AQL language improvements plus several AQL optimizer improvements.
We are working on further AQL improvements for 2.5, but work is still ongoing. This post summarizes the improvements that are already completed and will be shipped with the initial ArangoDB 2.5 release.
Estimated reading time: 1 minutes
ArangoDB 2.5 comes with an upgraded version of V8, Google’s open source JavaScript engine.
The built-in version of V8 has been upgraded from 3.29.54 to 3.31.74.1.
Estimated reading time: 8 minutes
This version is deprecated. Download the new version of ArangoDB
In ArangoDB 2.5, hash and skiplist indexes can optionally be made sparse.
Such sparse indexes will exclude documents in which at least one of the index attributes is either not set or has a value of null. Declaring an index as sparse can provide great savings in memory and index creation CPU time for some cases.
For example, the following document only has attributes _key and name:
{ "_key" : "test", "name" : "foobar" }
In a sparse index on (non-existing) attribute value, the above document will simply be ignored. And in a..
Get the latest tutorials,
blog posts and news:
