Static binaries for a C++ application

TL;DR; This describes how to generate a completely static binary for a complex C++ application which runs on all variants of Linux without any library dependency.

ArangoDB is a multi-model database written in C++. It is a sizable application with an executable size of 38MB (stripped) and quite some library dependencies. We provide binary packages for Linux, Windows and MacOS, and for Linux we cover all major distributions and their different versions, which makes our build and delivery pipeline extremely cluttered and awkward. At the beginning of this story, we needed approximately 12 hours just to build and publish a release, if everything goes well. This is the beginning of a tale to attack this problem. Read more

More info...

Win your free ticket and join ArangoDB @ JontheBeach 2018

We are thrilled to be attending one of Europe’s greatest events – JontheBeach (JOTB), an international rendezvous for developers and DevOps around Big Data technologies. No product talks just deep-tech topics presented by hand-picked speakers from Google, Apache Spark, RedHat, Stripe, Microsoft and many more. Read more

More info...

Welcome to the ArangoDB family, Ted Dunning!

We are absolutely thrilled to announce that one of the brightest and most respected minds in open-source software joins ArangoDBs Advisory Council. Hi, Ted and welcome to the ArangoDB family!
ted dunning
For those who don’t know Ted Dunning yet, maybe a quick introduction and the reason why the whole team is so amazed that he supports the project. Ted Dunning is Chief Application Architect at MapR, holds a PhD in computer science and is committer as well as PMC member of the Apache Mahout, Zookeeper and Drill projects. Besides his 25 patents, and even more pending, he mentors multiple well-known Apache projects like Storm, Flink, or DataFu with his broad experiences across industries and technologies. Ted contributes so much to the open-source world and we feel blessed to have him on board at ArangoDB. Read more

More info...

ArangoDB Easter Egg Hunt: Join the Fun and Discover Surprises!

While working hard on the next release and hacking away new interesting things to include into our favourite database, we decided to take a short break to have some fun just in time for Easter. All teams gathered together to do some Easter eggs coloring, chocolate-eating and fun-having 🙂

We’ve colored a lot of eggs in our favourite colors – green and brown, and hid them all around our office and beyond. Now, here is a little challenge for you to help us find them. Read more

More info...

ArangoDB Java Driver: Load Balancing for Performance

The newest release 4.3.2 of the official ArangoDB Java driver comes with load balancing for cluster setups and advanced fallback mechanics.

Load balancing strategies

Round robin

There are two different strategies for load balancing that the Java driver provides. The first and most common strategy is the round robin way. Round robin does, what the name already assumes, a round robin load balancing where a list of known coordinators in the cluster is iterated through. Each database operation uses a different coordinator than the one before. Read more

More info...

ArangoDB Named Best Free Graph Database by G2 Crowd Users

ArangoDB named by G2 Crowd users as the most popular graph database used today.

ArangoDB has been identified as the highest rated graph database, based on its high levels of customer satisfaction and likeliness to recommend ratings from real G2 Crowd users.

ArangoDB received a near perfect 4.9 out of 5 star average for user satisfaction for its free platform across its 24 user reviews. ArangoDB users point to the database’s query language, availability and storage as the three most liked features of the product. Read more

More info...

ArangoDB | Introduction to Fuerte: ArangoDB C++ Driver

In this post, we will introduce you to our new ArangoDB C++ diver fuerte. fuerte allows you to communicate via HTTP and VST with ArangoDB instances. You will learn how to create collections, insert documents, retrieve documents, write AQL Queries and how to use the asynchronous API of the driver.

Requirements (Running the sample)

Please download and inspect the sample described in this post. The sample consists of a C++ – Example Source Code – File and a CMakeLists.txt. You need to install the fuerte diver, which can be found on github, into your system before compiling the sample. Please follow the instructions provided in the drivers README.md. Read More

More info...

Performance analysis with pyArango: Part III Measuring possible capacity with usage Scenarios

So you measured and tuned your system like described in the Part I and Part II of these blog post series. Now you want to get some figures how many end users your system will be able to serve. Therefore you define “scenarios” which will be typical for what your users do. Read more

More info...

Auto-Generate GraphQL for ArangoDB

Currently, querying ArangoDB with GraphQL requires building a GraphQL.js schema. This is tedious and the resulting JavaScript schema file can be long and bulky. Here we will demonstrate a short proof of concept that reduces the user related part to only defining the GraphQL IDL file and simple AQL queries.

The Apollo GraphQL project built a library that takes a GraphQL IDL and resolver functions to build a GraphQL.js schema. Resolve functions are called by GraphQL to get the actual data from the database. I modified the library in the way that before the resolvers are added, I read the IDL AST and create resolver functions. Read more

More info...

ArangoDB | PyArango Performance Analysis – Transaction Inspection

Following the previous blog post on performance analysis with pyArango, where we had a look at graphing using statsd for simple queries, we will now dig deeper into inspecting transactions. At first, we split the initialization code and the test code.

Initialisation code

We load the collection with simple documents. We create an index on one of the two attributes: Read more

More info...

Get the latest tutorials,
blog posts and news: