Good if you need to store and retrieve strings and integers by a key. Not so good if you need more complex querying
We did a short evaluation of Aerospike as a potential alternative to AWS SimpleDB.
Was excited about the performance claims as well as being able to use it as both a persistent store and an RAM based database.
Unfortunately we found that the query capabilities available fell short of our expectations.
Specifically, we are unable to perform a query that ORs query clauses. We could only do logical ANDs on Aerospike
We could do the OR on the client, but it should be unnecessary.
A couple of other problems:
-The only primitive data types supported are String, Integer and byte arrays. Would have been nice if there were some additional types like Date available. We could workaround this shortcoming, but this is more work for us.
-Could not find a way to use simple functions in a query. A simple case would be a simple query clause of the form
lower(name)='dodo'.
Again, we could work around this by, for example, saving a lowercase version of the string in the database, but just more trouble for us.
-The error reporting on the client side was not very good.
A specific example: when trying to PUT a simple record with a few keys and values we kept encountering an error reported as Error Code 4: Parameter error .
The documentation was not very helpful in figuring out what might have been the cause. After systematically simplifying the code to narrow down the problem it turned out that the issue was that one of the strings that we were using as a key was longer than the supported 14 characters.
This is an error that I am sure every Aerospike user would encounter, particularly new ones " Error Code 4: Parameter error" is just not good enough.
So as much as we wanted to like Aerospike, we are not going to use it. Maybe we will check back in a year.