Blog

Aerospike 3.7.0 Release

Author's photo
Aerospike Marketing
December 14, 2015|4 min read

We are super excited to announce the release of Aerospike 3.7.0. This builds on our core mission of Speed at Scale by providing a set of features that are well-aligned with this mission and enable building rich, context-aware applications.

Geospatial

Aerospike can now store GeoJSON objects and execute various queries, allowing an application to track rapidly changing Geospatial objects or simply ask the question of “what’s near me”. Internally, we use Google’s S2 library and Geo Hashing to encode and index these points and regions. The following types of queries are supported:

  • Points within a Region

  • Points within a Radius

  • Regions a Point is in

This can be combined with a User-Defined Function (UDF) to filter the results – i.e., to further refine the results to only include Bars, Restaurants or Places of Worship near you – even ones that are currently open or have availability. Additionally, finding the Region a point is in allows, for example, an advertiser to figure out campaign regions that the mobile user is in – and therefore place a geospatially targeted advertisement. Internally, the same storage mechanisms are used, which enables highly concurrent reads and writes to the Geospatial data or other data held on the record. Geospatial data is a lot of fun to play around with, so we have included a set of examples based on Open Street Map and Yelp Dataset Challenge data.Geospatial is an Experimental feature in the 3.7.0 release. It’s meant for you to try out and provide feedback. Please visit our community forum to provide your feedback. We think the APIs are good, but in an experimental feature, based on the feedback from the community, we may choose to modify these APIs by the time this feature is GA. It’s not intended for Production usage right now (but we know some of you will go directly to Production)!More information in the Documentation.

List Operations

Aerospike has the ability to store and retrieve Lists and Maps. We are extending the ability to directly manipulate Lists via a set of commands directly on the Server. You can now:

  • Append an item

  • Insert an item or list of items

  • Get an item or range of items

  • Set an item

  • Pop an item or range of items

  • Remove an item or range of items

  • Trim items from a list

  • Clear a list

  • Get the size of a list

These commands work directly on Lists stored in Bins and are not intended to work with Large Data Type (LDT) Lists. We are working to unify these APIs in a future release and add similar manipulation of native Map types.There is a native API for list manipulation for the C and Java clients; other drivers will follow shortly.More information in the Documentation.

Clustering Improvements

We have been improving cluster algorithms for environments like Google Compute Engine and Amazon EC2. In particular, these environments have lossy networks, and GCE aggressively applies “live migration” to their virtual machines. If you have observed cluster stability issues with the error “cluster integrity fault” visible in logs, you can dynamically turn on this alternate algorithm. If you do, it would be great to get your feedback via our user forum .More information in the Documentation.

And lots more

Take a look at the Release Notes and the Change Log, but here are a few highlights:

  • Improved statistics for migrations

  • Improved state management for data migration

  • Option to use local time in log messages

  • Add stop-writes threshold on a per set basis

  • Option to include or exclude LDT data in scans

  • Dynamically change the unicast heartbeat addresses

What’s next

We are working on a “Phone Home” feature, which we expect to release early in 2016. We want to better understand the sizes of Aerospike clusters, the read and writes rates along with what features are being used, client drivers and versions – and challenge other open source projects to provide statistics beyond downloads to their communities. We want to guide our decisions by some empirical data rather than our “best guess”. More information about this soon!And we are working on the next set of features for 3.8 …