Aerospike 3.9 Release

Aerospike Engineering
July 12, 2016|4 min read

What’s New?

Carrying on our quarterly release schedule, we are super excited to announce the release of Aerospike Server 3.9. This continues our mission to provide an Enterprise-Grade NoSQL product. As always, we would love to get your feedback on our user forum.

Operations on Maps & Sorted Maps – Experimental

We are making available a new set of APIs that add to the existing List APIs announced in Aerospike 3.7 by adding support for maps and sorted maps. This allows server-side manipulation of Map data structures that can retain an order or ranking. Here’s a basic summary of what you can now do:

  • Store and retrieve Map & Sorted Map data

  • Manipulate the Map & Sorted Map on the server with the following operations:

    • add(k, [v]), add_items

    • remove(k), remove_items

    • remove_range(min,max)

    • find(k)

    • find_first(count)

    • find_last(count)

    • exists(k)

    • range(min,max)

    • size()

  • Create a Secondary Index on Map & Sorted Map bins

  • Query via a Secondary Index on Map & Sorted Map entries

Clients/languages supported are as follows:

  • C#

  • C / C++

  • Go

  • Java

  • Node.js

  • Ruby

This is an experimental release; it’s not intended for Production use. We want to gather input from the community on the suitability and applicability of the APIs before finalizing them. More information can be found here.

Rapid Rebalance

Migrations are the process of rebalancing and syncing partitions after a cluster disruption event such as a network link failure, node restart, etc. With Aerospike Enterprise v3.9.0, we have reduced the typical cluster migration time by 40x. Operations teams can now look forward to much faster upgrade cycles and static configuration changes. Similarly, the applications supported by Aerospike can now benefit from significantly reduced migration windows, improving overall latency.More information can be found in our recent blog post on the topic.

Improved Statistics, Aggregation and Logging

We have made a number of changes in the Statistics and the Logging that Aerospike collects. The driving goals for the projects were as follows:

  • Ability to track namespace-level activity

    • Single-record operation usage counters (i.e., client read, write, delete and UDF)

    • Multi-record operation usage counters

    • Internally generated single-record operations counters (e.g., XDR read, batch read)

    • Data Rebalance progress counters

    • Memory/Device counters

  • Improved delineation of different usages (read, write, batch, etc.)

  • Increased statistics tracking in the server logs

  • Consistent naming of metrics

We have updated the following with these changes:

  • Aerospike Monitoring Console (AMC)

  • Aerospike Admin Command Tool (asadm)

  • Aerospike Collectd Plugin (collectd)

  • Third-Party Plugins (Graphite, Nagios, Zabbix)

These changes could impact any custom monitoring scripts you may have, so we have prepared a migration guide to assist you with this transition and help you upgrade to 3.9.

Other Improvements

Release 3.9 incorporates other improvements, such as:

  • Cold start – resolve different record versions based on the last-update-time instead of generation

  • Change default conflict-resolution-policy=last-update-time

  • User-Defined Function (UDF) – implement record.numbins()

  • Multicast heartbeats will now only listen on specified multicast address

  • List insert operation now has stricter parameter validation

Please see the Release Notes of Aerospike 3.9 for a complete list of changes.

Platform Currency

We have added the following O/S platforms for pre-built & tested executables:

  • Ubuntu 16.04

What’s Next?

Here are a couple of features we are looking to deliver in the first half of this year. This is just a preview, and not a commitment!

  • Last Update Time

    In 3.9, we made some changes to the metadata that is maintained for each record. One of the benefits of these changes is that we will be able to capture the last update time for each record, and expose that back through the client APIs. Since this information is system-maintained, this reduces the work your application needs to do in order to record and maintain it. This change is implemented on the Server in 3.9; we will expose this information in a future update of the clients.

  • Pivotal Service Broker and Managed Service Integration

    We are working on deeper Pivotal integration and we hope to make available this integration in the Fall. Let us know if you are interested in being an

    Early Adopter.

  • Spring Session Store Integration

    We are extending the Spring Data plugin to also support the SessionStore APIs. Let us know if you are interested in being an

    Early Adopter.

  • What languages should Aerospike support next? If you have not voted yet, please add your vote here.

As always, we look forward to your input and help to continue to improve and enhance the Aerospike project. Feel free to contribute your feedback, ideas and questions to our user forum, file Github issues or create a pull request for the next great feature you’d like to contribute to the Aerospike user community!