4

I am planning to use arangodb as my backend storage. And I would like to know how efficient arango db as a cache service in comparison to aerospike and redis. Did anyone tried the comparison in terms of features and performance as a caching system. It will help me to reduce using another system administration from my backend stack.

Ysak
  • 2,601
  • 6
  • 29
  • 53
  • 1
    I have not compared ArangoDB to Aerospike or Redis, but I have fbeen very satisfied with it as backend storage. Single read and single write speeds are very competitive. Arangoimp and Arangodump are great for bulk operations. I would recommend trying ArangoDB for your application, especially if you will benefit from graph data structures. The indexing makes ArangoDB faster than any other graph DB I have seen. It's because they use a combination of hash indices and doubly linked lists rather than typical graph DB "index free adjacency." The key/value and document store functions are also fast! – Nate Gardner Oct 11 '16 at 23:19

2 Answers2

4

As far as I know, ArangoDB does not offer the same caching oriented features than redis (I think of expiration of keys, with commands like EXPIRE or EXPIREAT). So you'll have to handle the expiration and the eviction of expired keys, ArangoDB won't do it for you.

Moreover ArangoDB mainly stores its data on disk, when Redis stores all of them in memory -and optionally on disk. So without making any benchmark, you can be assured that Redis will be way faster than ArangoDB.

ArangoDB makers did their own performance benchmarks, and they did not compare it to any in-memory database. It's just not the same category of products.

Pascal Le Merrer
  • 5,883
  • 20
  • 35
  • You could potentially use Foxx services to do things like EXPIRE or EXPIREAT, as a function of attributes in documents. – Nate Gardner Oct 11 '16 at 23:13
  • 1
    That's exactly what I said: you have to handle it by yourself, where Redis takes care of it for you. Using Foxx service is just a way of doing it. BTW I agree with you, although I would not use it as a cache, ArangoDB is a great database ;) – Pascal Le Merrer Oct 12 '16 at 06:12
  • Thank you...i think its a good advise..Accepting as an aswer. – Ysak Oct 12 '16 at 08:40
  • 3
    I should add that ArangoDB does store data in memory. When a datasource is labeled as `loaded` in ArangoDB, that data is in memory. Running on my server (128GB of RAM), ArangoDB's disk I/O is extremely minimal, indicating to me that it is primarily operating in memory, with the disk only for swap and non-volatile storage of the data. (ArangoDB devs please correct me if I'm wrong) – Nate Gardner Oct 12 '16 at 21:39
4

ArangoDB is referring to itself as 'mostly in memory'. As Nate put it, it can be verry fast.

Its approach tries to circumvent problems introduced by the Polyglot persistance approach by offering multi model patterns in one database. In case you want to flatten the dependency stack of your application setup it may be a valid approach to choose ArangoDB instead of Redis.

Whether its resource usage footprint meets your expectations should be part of your own benchmarks.

dothebart
  • 5,972
  • 16
  • 40