merge the enhancement from Aerospike, add some new enhancement