The soon-to-be-released Aerospike 5.7 includes the first milestone of a rewrite of Secondary Indexes. Among these new features are indexes which are 60% more memory efficient, faster queries, and a superior new garbage collection system. You can get a more comprehensive launch overview by reading the blog post Aerospike Database 5.7: Operational, Query, and Security Enhancements.

We also prepared this blog post for developers to use if your application keeps track of Aerospike metrics, or displays information about secondary indexes.  It is important to address the changes coming in version 5.7.  We go into (lots more) detail below.

Info Commands

Breaking Change

The format of the sindex-list:ns=test info call has changed in a way that affects tools such as asbackup.

On server version 5.6.0.11, the output is

ns=test:set=testset:indexname=int_idx:bin=bin_1:type=NUMERIC:indextype=NONE:path=bin_1:state=RW;

On server version 5.7.0.4, the output is

ns=test:set=testset:indexname=int_idx:bin=bin_1:type=NUMERIC:indextype=DEFAULT:path=bin_1:state=RW

Note both the missing trailing ; in 5.7 and the indextype DEFAULT as opposed to NONE. This change was done in order to normalize the output of the command with similar ones.

Renamed and Removed

The following info commands are typically used by tools such as asadm and aql.

Pre 5.7Aerospike 5.7
query-listquery-show
query-killquery-abort
dump-si– deleted –
sindex-builder-list– deleted –

Configs

Several configuration parameters in the service context have been modified or deleted.

Pre 5.7Aerospike 5.7
query-threads

Integer values get rounded up
query-threads

An even integer value is enforced
query-bufpool-size– deleted –
query-pre-reserve-partitions– deleted –
sindex-gc-max-rate– deleted –

Stats

Namespace Context

The following table shows changes to statistics related to the namespace info command.

Pre 5.7Aerospike 5.7
query_lookup_successquery_basic_complete
query_lookup_errorquery_basic_error
query_lookup_abortquery_basic_abort
query_lookup_avg_rec_countquery_basic_avg_rec_count
query_lookups– deleted –

Use query_basic_complete + query_basic_error + query_basic_abort
query_agg_successquery_aggr_complete
query_agg_errorquery_aggr_error
query_agg_abortquery_aggr_abort
query_agg_avg_rec_countquery_aggr_avg_rec_count
query_agg– deleted –

Use query_aggr_complete + query_aggr_error + query_aggr_abort
query_udf_bg_successquery_udf_bg_complete
query_udf_bg_failure– deleted –

Use query_udf_bg_error + query_udf_bg_abort
query_udf_bg_error
query_udf_bg_abort
query_ops_bg_successquery_ops_bg_complete
query_ops_bg_failure– deleted –
query_ops_bg_error
query_ops_bg_abort
query_false_positives

Global Context

The following table shows changes to statistics related to the statistics info command. As there is a brand new garbage collection system in 5.7, most of these have been permanently removed.

Pre 5.7Aerospike 5.7
sindex_gc_garbage_cleanedsindex_gc_cleaned
sindex_ucgarbage_found– deleted –
sindex_gc_retries– deleted –
sindex_gc_list_creation_time– deleted –
sindex_gc_list_deletion_time– deleted –
sindex_gc_objects_validated– deleted –
sindex_gc_garbage_found– deleted –

Sindex Context

The following table shows changes to statistics related to the sindex info command.

Pre 5.7Aerospike 5.7
query_reqs– deleted –
query_avg_rec_count– deleted –
query_avg_record_size– deleted –
query_lookups– deleted –

Use query_basic_complete + query_basic_error + query_basic_abort
query_basic_complete
query_basic_error
query_basic_abort
query_lookup_avg_rec_countquery_basic_avg_rec_count
query_lookup_avg_record_size– deleted –
query_agg– deleted –
query_agg_avg_rec_count– deleted –
query_agg_avg_record_size– deleted –
si_accounted_memory– deleted –

Use ibtr_memory_used + nbtr_memory_used
stat_gc_time– deleted –