NoSQL Review: Aerospike 3.14
NoSQL Review: Aerospike 3.14
Get a review of Aerospike, a key-value store NoSQL database with a unique native flash storage layer, with great architecture, and with a focus on performance.
Join the DZone community and get the full member experience.Join For Free
New whitepaper: Database DevOps – 6 Tips for Achieving Continuous Delivery. Discover 6 tips for continuous delivery with Database DevOps in this new whitepaper from Redgate. In 9 pages, it covers version control for databases and configurations, branching and testing, automation, using NuGet packages, and advice for how to start a pioneering Database DevOps project. Also includes further research on the industry-wide state of Database DevOps, how application and database development compare, plus practical steps for bringing DevOps to your database. Read it now free.
This is a review of the latest Aerospike NoSQL database, version 3.14.
Aerospike is a key-value store NoSQL database with a unique native flash storage layer, making it blindingly fast. It is one of my favorite NoSQL databases thanks to its architecture and its focus on performance.
Latest release: Version 3.14 (June 6, 2017; press release latest is 3.11 only, January 31).
Commercial backer: Aerospike, Inc.
Licensing: Community core (Affero GPL V3.0) with Enterprise supported version.
Sales model: Innovative payment by data volume managed model.
Aerospike is positioning itself as having a hybrid memory database rather than a high-performance key-value store, which is what it is functional. With improvements in RAM usage and a more fine-grained locking capability in this release, you can see why they position themselves this way.
Transport Layer Security (TLS 1.2) has been added to version 3.11 on the server and client libraries. I must admit, I was a bit surprised that Aerospike didn’t have this before — it’s very common across the industry and a requirement in very secure customers. If you need this, upgrade to version 3.11 or above.
To be fair to Aerospike, the database is normally deployed deep in networks next to the application servers that will communicate with it, so communications weren’t unencrypted over the Internet or anything — just within the datacenter.
IPv6 support is now available in all client drivers, whereas this feature was introduced in the server for version 3.10. Although I don’t know many places using just IPv6 in anger, it’s the kind of feature that if you need it, then you really need it!
Improved support for the Kafka connector architecture is included in this release. This should help those that have adopted Kafka to more easily load data into Aerospike.
What I Like
It has an official client API that supports all the new functionality are available for Java, C#, C, and Go — a nice range of languages that should suffice for most development houses.
Rolling updates are not new in Aerospike, but I love seeing companies just drop in the fact they can do this across the cluster. For administrators of large, live, mission-critical clusters, this is a godsend!
In general, I just love the approach Aerospike takes to high performance. They wrote their own Flash SSD native handling layer rather than rely on the underlying operating system in order to squeeze the best performance out of the drives.
The focus on high performance across its product’s features and client libraries is a winning combination that I’m sure will keep customers with acute performance problems knocking on Aerospike’s door for years to come.
What’s Not So Good
The improvements to the
SortedMap type will be welcome, allowing higher speed interaction to a more complex data type than just keys and values. I would like to see more complex data type and operations support than currently provided, though. I do love the fact that Aerospike is very open about the computational complexity of their operations, though.
The Redis database is still the king in this area, supporting a wide range of data types and operations in its key-value store. Aerospike’s support of User Defined Functions (UDFs) means that customers can work around this if they need to.
Geospatial support appears limited to Spheres (which the Earth isn’t), and the library used appears to have not been updated in six years, leading me to wonder about how much investment is going on in Geo beyond simple storage of geospatial data.
There’s a hint on the documentation page that Geospatial precision may not be accurate to very short distances, and may be indexed as a floating point, not double precision. This means centimeter resolution may not be possible — please get in contact if you’d tested this, I’d love to hear about your experience.
Incremental backup and restore is still not supported but is promised for a future version. That too is like catnip for administrators — especially those with, for example, large data churn during the working week.
Although this is the "not so good" section, I have to say that I do love how open Aerospike is by listing their known limitations! Good job! I’d advise people to check this list for any deal breakers… then let Aerospike know so they can improve what is a great product.
Where It's Used
Financial services is a key area that Aerospike focuses on. It would be interesting to see how many people use Aerospike as an alternative architecture to Software AG’s Terracotta or Oracle’s Coherence shared Java memory approach, which, too, is prevalent in Financial Services.
Advertising is also a key space, as is common for all key-value stores. Telecom and e-commerce are other customer areas too.
There is a complete list of customers on their website.
Published at DZone with permission of Adam Fowler , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.