Has anyone worked with Aerospike? How does it compare with MongoDB?

Can anyone tell me how Aerospike is as good as they claim? I am a little skeptical, as it is a commercial venture. As far as I understand, they just released an open source version, but claims on their site can still be exaggerated.

I am particularly interested in how Aerospike compares with MongoDB.

+48
mongodb nosql aerospike
Aug 08 '14 at 17:23
source share
4 answers

I used Aerospike, MongoDB and Redis and checked many other NoSQL databases. I would say that Aerospike is very good at what it does, but different from MongoDB. It all depends on what you plan to use the database for. I can give an example of why I use different databases. I can also figure out the differences between them and discuss the benefits of Aerospike.

Mongodb

I am using MongoDB as an alternative to SQL. In my MongoDB database, I have many different fields. Fields often change, and I will randomly request different fields. This is a very unstructured database, and MongoDB is striking. I also used MongoDB as a standard keystore. It works well, but for me MongoDB performed sub-optimally both on the transaction scale and on the database scale. Of course, the database could be optimized a little better, but it is very difficult for me to find documentation on correctly configuring MongoDB in different situations.

Redis

Redis is a clean key repository. The biggest problem with Redis is that it is purely in memory (it will use the disk as a backup, but you will not be able to store more information than you have available memory). It is extremely fast for what it is used for. I personally use it for a small transactional database: I do very simple functions on keys such as counting how many times an event has occurred for a particular user. I also do a quick memory search, which I need to map to different values. Redis is a great tool for a small dataset, and it is very fast. The configuration is also very simple.

Aerospike

I personally use Aerospike to replace Redis when it is time to scale. In my opinion, it can be used for more. Like Redis, Aerospike is a key store. I believe that the open source version also supports secondary indexes, which Redis does not do (I did not use secondary indexes in production, but I tested a little on them).

The best feature of Aerospike is its ability to scale. The biggest problem I had to solve while studying Aerospike was scaling my system to process large datasets while remaining extremely fast. The project I use Aerospike for has very strict speed requirements. I usually do 3-4 database searches and other processing and should have a sub-50 ms transaction time. Several searches are on data sets that are 300 GB +. I could not find a solution to store this data and make it available in a reasonable amount of time. Redis obviously won't work if I didn't have a machine with 300 GB + RAM. MongoDB started to work extremely poorly with sizes well below 300 GB. So I gave the Aerospike a shot and he was able to handle everything very well. Best at Aerospike: As my data set grew, I didn't have to do more than get into a new box if necessary. The speed remained consistent.

I also think that the Aerospikes documentation is very good. It is not so difficult to configure, and it is quite easy to find answers to any problem that arises.

Conclusion

So, is Aerospike as good as they claim? Personally, I saw nothing other than what was stated. I did not have to scale up to 1 million TPS, but I believe that the equipment that would be possible is enough. I also think that the numbers show the speed difference between Aerospike and MongoDB. Aerospike is a much more "customized" and "planned" database than MongoDB. Because of this, Aerospike will be much faster in scale than MongoDB. It remains only to worry about single (or in the case of secondary indexes, several hundred) indexes, unlike MongoDB, which can dynamically change. The question you really need to ask is what you are trying to accomplish using your database. Then see which database will best suit your needs. If you need a scalable, fast key storage database, I would say that Aerospike is probably best there.

Let me know if you have any specific questions or need to be clarified. I can probably help you.

+94
Aug 08 '14 at 20:29
source share

Speed

Aerospike faster. Almost any system will be fast with low load or easy access to data, but Aerospike has remained stably fast, optimizing storage capabilities and memory based on SSD. Mongo is fast when used with a lot of RAM, where for caching, but otherwise slow and has poor write performance.

Reliability

Aerospike is very stable, albeit with easier access to data. MongoDB has historically been problematic with data persistence and rollback, but now much better. Because Aerospike has better performance and simpler controls, this leads to less potential scaling problems.

Setup / Configuration

Clustering with Aerospike is much easier to configure, since all nodes are the same, and client drivers automatically handle connections and fault tolerance. MongoDB can be simpler if you are setting up one server, as it runs on other platforms, and you can run it without any configuration.

MongoDB has two main clustering methods, a set of replicas (for accessibility) and scaling (for scalability). We had 5 shards, and each shard had a set of replicas of 3 servers. These are 15 servers for data storage. Then we had 3 configuration servers that supported cluster configuration and had to add 2 arbiter processes after our first major failure in order to cope with the proper elevation of the slave. These are many moving parts, and it is also incredibly difficult to change the layout in the future.

In contrast, Aerospike has taken much less effort, but requires more configuration, most of which cannot be changed after the cluster starts, whereas with MongoDB you can create and modify databases at any time.

Aerospike has the ability to synchronize multiple clusters (which is difficult to configure), so you can have different active data centers that replicate data and receive records, which MongoDB really does not support at all.

Data access

MongoDB has a database / collection / document, where each document is only json. Aerospike has a namespace / set / record, where each record is a set of "bins" with a key, which can then have nested key / value structures. Namespaces are preconfigured and not dynamic, and property names are limited to 14 characters that annoy the job.

Both have secondary indexes, although MongoDB allows you to request anything immediately, while Aerospike requires an index or custom scripts. Both have built-in aggregation structures. Aerospike clients support LUA scripts, but MongoDB supports map reduction and custom javascript functions.

It really depends on the needs of your application, but MongoDB benefits in flexibility, simplified queries, and lower restrictions.

Cost

Both are now open source and free. Both versions have enterprise versions with additional features, but licensing is expensive if you have a lot of data. Aerospike can be cheaper because it requires fewer cars.

Generally

For most scenarios, I would recommend Aerospike. MongoDB's semantics of document storage and flexibility are great, but scaling and maintaining it since a distributed database is painful. Aerospike is fast and reliable and can work with fewer nodes that are easier to scale.




October 2014: Aerospike now offers a dedicated program for qualified startups to get free access to the corporate version.

January 2016: MongoDB released MongoDB Cloud Manager , which is a paid SaaS service that can provide and manage your clusters. This solves a lot of problems with configuring Mongo.

March 2017: Both databases have come a long way. Aerospike now has faster replication and more flexible configuration settings without restarting the entire cluster. MongoDB has a new schema application, improves performance, and even supports connections along with the managed service MongoDB Atlas to remove all scaling problems.




I highly recommend ScyllaDB , which is an open source Cassandra-compatible database with incredible performance, center replication, and no usage restrictions.

+51
Sep 08 '14 at 2:04 on
source share

I used MongoDB (2.4) and Aerospike 3 in our production systems. Here are a few comments found by our team: -

1) Aerospike read / write bandwidth is second to none . Typically, Mongo db runs to a certain level if read requests are on the higher side. If you need 95/5 percent parallel read / write, Mongo degrades as you like. With Aerospike we saw very little impact, even if this ratio is 90/10. At AWS, we reached 200k TPS with Aerospike.

2) At Aerospike, latency is very low. Read latency was sub-millisecond for 99 percent on the server side. Recording delay was submillisecond for 80 percent and within 8 ms for 100 percent. The best thing was that we got almost the same amount in different POCs, so stable performance.

3) Very few nodes are enough in the Aerospike cluster compared to other solutions. In addition, the data storage based on the SSD gives quite impressive numbers, so it is very cost-effective and low maintenance costs.

4) Now Aerospike is open source, so we hope for more community support :-)

So, we use Aerospike for all new systems and try to migrate from MongoDB.

+19
Aug 10
source share

MongoDB and Aerospike are not executed for the same data management, since SQL is not dead either.

We made cache systems with fragmentation clusters on Mongodb with the TokuMX version (2.0.0 based on Mongodb 2.4.10), the system still works well, and only 0.1% of requests take more than 100 ms for 65 million requests per day and around 10 million updates per day. Now we are trying to use Aerospike, which seems great and is now open source. There is only one problem with this open source version,

DO NOT USE IT IN PRODUCTION SERVERS!

Security management is available only in the Enterprise distribution. It means that

YOU CAN'T PROVIDE ANYTHING WITH A PASSWORD AND USER!

Now, if you do not mind, you can use it in production, but do not remember that any of your customers may request a security audit, and then you will have to pay a lot.

-2
Dec 21 '14 at 7:50
source share



All Articles