
ArangoDB: Multi-model highly available NoSQL database - giancarlostoro
https://www.arangodb.com/
======
andrewstuart
I like Arango but these days it's very hard for a database to compete with
Postgres which is incredibly powerful.

Every time I've bet against Postgres and used some other data storage
mechanism, I always come back to Postgres.

~~~
manigandham
The main thing to compete on is distributed scale-out and high-availability
which PostgreSQL does not have a good answer for.

~~~
zbentley
That's absolutely true. However, most systems that _think_ they need scale-out
are either worrying about a problem they don't have yet, suffering performance
problems due to poor database design, or have not fully explored logical
(dynamic or hash-based) sharding as a solution to their problems.

A huge proportion of modern software businesses can run on single-writer RDBMS
instances, properly engineered, at a fraction of the operational and
implementation cost of a scale-out solution. That applies to hosted and self-
managed solutions equally, in my experience.

~~~
manigandham
Sure, but scale isn't everything. Operations are far more important,
especially when you're a small team.

Modern distributed databases scale better but also have better replication,
high-availability with automatic failover and no downtime, easier upgrades,
easier backups, and generally less maintenance. Removing the single-point of
failure with efficient distribution while being able to run easily on
docker/kubernetes makes a big difference over a single monolithic database
server.

------
gurpreet-
I trialled ArangoDB for a short while approximately 2 years ago. I was looking
for a graph database to tinker with and learn about.

I was pleasantly surprised with ArangoDB. It was really user-friendly and I
liked how easy it was to setup when compared to other multi-model databases.
Definitely consider it for a hobby project.

------
josiahpeters
The entire offering looks very compelling. Unfortunately I couldn't get a
sense of operational efficiency or performance of ArangoDB in the wild. I
couldn't convince our CTO if we adopted this product, would we be trading the
extra development agility of the mixed models: graph, aql and kv for an overly
complex babysitting problem.

Can anyone here speak about their experience using ArangoDb in a multi tenant
SaaS product? How is it to manage your own cluster, backups, etc?

~~~
roflc0ptic
I lead our database team for a while, and picked ArangoDB. We started to
regret it pretty soon thereafter. While I was there, we found that our cluster
would just die. I think they got put fix in for that, though my memory is
hazy.

After I left, they came to really regret it. My team was working at scale, and
basically found themselves doing QA work, trouble shooting with the Arango
team. To their credit, the Arango crew was extremely responsive and helpful.
Maybe they've fixed things up since then; it's been a year and a half.

At this point, I would hard pass on any database whose name doesn't start with
PostgreSQL. Just got burned too hard.

Graph databases ostensibly let you write queries that would otherwise be
unwieldy, but it turns out PostgreSQL's `recursive` keyword lets you achieve
roughly the same things, sans having to learn a whole new query language.

~~~
sv12l
Do you mind telling the issues you faced with ArangoDB? Coz we are evaluating
few options currently and Arango is one of them.

~~~
roflc0ptic
I mentioned that the cluster would freeze. The other issue I remember vividly
(less important, but irksome) was that the join query `for i in collection1:
for j in collection2: filter ... ` executed way, way slower than the
equivalent query: `col1 = for i in collection1 for j in collection2: filter
... `

I kept in touch with one of the directors, and after I left he mentioned a
couple of things - they found that doing joins returning large amounts of data
(maybe 10k records, IIRC) was prohibitively slow. They also found that under
certain conditions, with a certain amount of data in the database, it would
crash. He didn't ever describe the conditions.

They switched to couchbase, and have reported being happy with it.

~~~
jsteemann
Being one of the developers of ArangoDB, I would like to use the chance to
reply to this as well.

I think there have been various issues with the cluster stability 1.5 years
ago, and since then we have put great efforts into making the database much
more robust and faster. Many man-years have been dedicated to this since 2017.

1.5 years ago we were shipping release 3.1, which is out of service already.
Since then, we have released

* ArangoDB 3.2: this release provided the RocksDB storage engine, which improves parallelism and memory management compared to our traditional mostly-memory storage engine * ArangoDB 3.3: with a new deployment mode (active failover), plus ease-of-use and replication improvements (e.g. cross-datacenter replication) * ArangoDB 3.4: latest release, for which we put great emphasis on performance improvements, namely for the RocksDB storage engine (which now also is the default engine in ArangoDB)

In all of the above releases we also worked on improving AQL query execution
plans, in order to make queries perform faster in both single server and
cluster deployments. Working on the query optimizer and query execution plan
improvements is obviously a never-ending task, and not only did we achieved a
lot here since 2017, but we still have a lot of ideas for further improvements
in this area. So there are more improvements to be expected for the following
releases.

All that said, I think it is clear now that my intention is to show that
things should have improved a lot compared to the situation 1.5 y ago, and
that we will always be working hard to make ArangoDB a better product.

~~~
misiek08
What release will be stable if version 3.1 has serious clustering issues? The
old, bad days version 1.0 was considered stable :)

------
rishav_sharan
I used Arango for my hobbyist project and enjoyed it immensely. Aql is an
absolute joy. I am hoping that they improve foxx (web server which runs on top
of the db) because that would make arango the best tool for my kind of use
cases

~~~
Simran-B
Why not use Nginx or Node.js alongside ArangoDB? The problem with integrating
a full web server is that you don't want the database to wait until some
external request carried out by the web server finishes (no blocking).

If there was an integrated web server, but fully decoupled to not block the
database, then there would probably be no real benefit over running a separate
web server on the side.

------
maxpert
Same question I always ask, who is using it in prod? How huge the database
size is? I’ve used postgresql with almost 200+ GB size of single table and it
works like breeze! What are caveats, traps I should be aware of?

~~~
coleifer
Yes. I'm also curious about what kind of tradeoffs I would be making by
choosing arangodb over postgres, etc. For example, with Postgres you have acid
but not much in the way of horizontal scale-out. With Redis you have speed
(single thread, though), but data must fit in ram. What am I giving up by
choosing this DB?

~~~
ahs1200
It's a broad band antibiotic. It's meant to be applicable to all purpose
databasing. Horizontal scaling is given but you need to reshard your
collections. Great, no exaggeration, overall performance and in some special
cases better than specialized databases. My 2 cents.

------
dang
[https://hn.algolia.com/?query=ArangoDB%20points%3E10&sort=by...](https://hn.algolia.com/?query=ArangoDB%20points%3E10&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0)

------
internalfx
This is where I went after RethinkDB shut down.

The built-in UI is really nice.

If you use documents and graphs, take a look.

------
Gby56
I've been using it for personal projects and it's been quite fun !

The comments about Postgres and database XX vs ArangoDB are always the same,
this is a choice depending on the use-case, if you have a vague scenario,
ArangoDB has good performance on a wide array of use cases.

On a personal note, the main downside is not having any ORM for Golang for
example, Node.js doesn't have any worth considering too.

Python seems to have arango-orm, which makes it simpler for small projects to
integrate it.

Another improvement could be the graph visualization, simplifying the setup to
use another solution would be nice.

------
lbj
At Sabre we're currently taking a really hard look at
[https://www.memsql.com/](https://www.memsql.com/). Im not seeing enough
strength in the NoSQL paradigme, at least for our use-case, but I'm definitely
looking for better and faster management of an arbitrary number of leafnodes
and consumernodes.

------
janemanos
the cool thing about Arango is that you can use all data models also in a
cluster setting and combine the models as you need. A pretty nice and helpful
community around the project as well.

------
k__
Is it connection based like MySQL and such?

~~~
amirouche
no

