our company planning on transitioning redis aerospike, seeing strange issues missing requests (only 35% making callback function).
here code testing with:
var cluster = require('cluster'); var numcpus = require('os').cpus().length; if (cluster.ismaster) { (var = 0; < numcpus; i++) { var worker = cluster.fork(); } } else { var start = new date().gettime(); var requests = 0; var responses = 0; var aerospike = require('./node_modules/aerospike'); var status = aerospike.status; var client = aerospike.client({ hosts: [ { addr: '127.0.0.1', port: 3000 } ] }); function connect_cb( err, client) { if (err.code == status.aerospike_ok) { console.log("aerospike connection success") } } client.connect(connect_cb) setinterval(function(){ for(var i=0; i<50; i++) { var key = aerospike.key('dexi','toys','floor_'+i); requests++; client.get(key, function(err, rec, meta) { responses++; if ( err.code == status.aerospike_ok ) { } else { console.error('get error:', err); } }); } },10); setinterval(function(){ for(var i=0; i<50; i++) { var key = aerospike.key('dexi','toys','floor_'+i); var rec = { uid: 1000, // integer data stored in bin called "uid" name: "user_name", // string data stored in bin called "user_name" dob: { mm: 12, dd: 29, yy: 1995}, // map data stored (msgpack format) in bin called "dob" friends: [1001, 1002, 1003] }; var metadata = { ttl: 10000, gen: 0 }; client.put(key, rec, metadata, function(err) { switch ( err.code ) { case status.aerospike_ok: break; default: console.error("put error: " + err.message); exitcode = 1; break; } }); } },10); setinterval(function(){ var timespent = ( new date().gettime()) - start; console.log(requests, responses,timespent); },15000); }
below console output seeing:
34400 9306 15098 34150 9250 15080 35050 9330 15087 34150 9235 15092 33250 9310 15120 33950 9249 15090 34650 9298 15101 35000 9400 15102 34700 9300 15166 33150 9399 15181 34500 9300 15193 33850 9292 15207 34400 9250 15162 34100 9360 15212 34050 9250 15171 34100 9348 15159 33800 9250 15118 34300 9309 15189 34050 9300 15152 34250 9405 15181
as can see, on average, every 35k requests send, seeing small % of them come back. our aerospike dashboard reflects discrepancy (only seeing 35% of gets sent), throughput reflecting responses getting back.