Return Value Optimization for AQL: ArangoDB Query Efficiency
While in search for further AQL query optimizations last week, we found that intermediate AQL query results were copied one time too often in some cases.
Precisely, the data that a query’s ReturnNode
will return to the caller was copied into the ReturnNode
’s own register. With ReturnNode
’s never modifying their input data, this demanded for something that is called return-value optimization in compilers.
2.6 will now optimize away these copies in many cases, and my blog post Return Value Optimization for AQL shows performance benefits of 10-25% that can be expected due to the optimization.
ArangoDB 2.5.3: Maintenance Release for Enhanced Stability
This version is deprecated. Download the new version of ArangoDB
The third maintenance release for ArangoDB 2.5 is available for download. This maintenance release is to address some issues in ArangoDB 2.5 and to support future releases. (more…)
ArangoDB Team in Silicon Valley: Innovation and Collaboration
ArangoDB’s outpost in the Bay area is getting more and more crowded. CTO Frank @fceller has joined the team of our CEO Claudius @weinberger, and ArangoDB´s lead developers: Max @neunhoef & Michael @mchacki. The latter are in San Francisco for a while already.
You can meet our team by attending several Meetups, the Collision Conf in Vegas (5-7 May) or at the @GeekdomSF office at Folsom Street #100, near Moscone Center. Get in touch, grab’ a coffee and join the discussions about NoSQL and multi-model databases. We are here to stay – at least until the end of May. (more…)
Exporting Data for Offline Processing in PHP: ArangoDB Guide
A few weeks ago I wrote about ArangoDB’s specialized export API.
The export API is useful when the goal is to extract all documents from a given collection and to process them outside of ArangoDB.
The export API can provide quick and memory-efficient snapshots of the data in the underlying collection, making it suitable for extract all documents of the collection. It will be able to provide data much faster than with an AQL query that will extract all documents.
In this post I’ll show how to use the export API to extract data and process it with PHP.
Please read the full blog post Exporting Data for Offline Processing.
AQL Functions Enhancements: Boosting ArangoDB Query Capabilities
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:
UNSET()
: remove specified attributes from an object/documentKEEP()
: keep only specified attributes of an object/documentMERGE()
: merge the attributes of multiple objects/documents
This blog post shows a few example queries that will benefit from 50 to more than 60 % reductions in query execution times due to the changes done to these functions.
Efficient Data Collection with Hash Tables: ArangoDB Insights
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.
Creating Multi-Game Highscore Lists: ArangoDB Techniques
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…)
Collision Conf 2015: ArangoDB Insights & Collaborations
We are looking forward to joining the tech crowd at the Collision Conf that will take place in just a few weeks. Join us at this amazing event downtown Las Vegas on 5–6 May 2015.
As a sister event of Web Summit – Europe’s largest tech conference attracting over 20,000 attendees from around the world – Collision is a new type of tech conference for America: “A meeting place for people who are both building the companies of tomorrow and managing the companies of today.” – (Collision Conf)
We are proud to get a chance to share our vision on multi-model databases and present ArangoDB to the world during a Startup-Pitch. We will also demonstrate our latest developments on DCOS integration at our booth. The team is currently working on an exciting Demo to show the crowd how excellent multi-model database can be. (more…)
AQB Update: Write More Readable Queries with ArangoDB
The latest update to the AQL Query Builder for JavaScript addresses a major pain point: the “prefix notation” or LISP style syntax of AQL operator methods. Instead of calling the operator methods on the query builder object itself, you can now directly call them as methods on value objects.
Let’s say you want to write a query that takes all non-admin users with a power level over 9000 and returns their score rounded to the closest 100. In plain AQL this could be written like this:
FOR user IN users
FILTER user.isAdmin == false && user.powerLevel > 9000
RETURN ROUND(user.score / 100) * 100
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. (Edit: now also available: Amazon Web Services) 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.
wget https://raw.githubusercontent.com/ArangoDB/deployment/publish/GoogleComputeEngine_ArangoDB_Cluster.sh
chmod 755 GoogleComputeEngine_ArangoDB_Cluster.sh
Google Compute Engine prerequisites
The script needs an available and configured Google Project.
- Create a project (GCE Projects).
- Remember your project-id, you’ll need that later for gcloud configuration.
- Enable Google Compute Engine API (more…)
Get the latest tutorials,
blog posts and news:
Thanks for subscribing! Please check your email for further instructions.