shared-memory
Version:
A k-v database using /shm/ to shared memory
54 lines (50 loc) • 1.15 kB
JavaScript
var fs = require('fs-extra');
var cluster = require('cluster');
var ep = require('event-pipe');
if(cluster.isMaster) {
var cpu = require('os').cpus().length;
cpu = cpu < 2 ? 2 : cpu;
fs.remove('./tmp/mp', function(){
var i=0;
var j=1;
while( i++ < cpu ) {
worker = cluster.fork();
worker.on('exit', function(){
console.log(arguments);
if(++j == cpu){
console.log('done');
process.exit(0);
}
})
}
})
} else {
var max = process.argv[2] || 100;
var max = parseInt(max);
var db = require('./out/release/lib')({dir: './tmp/mp'})
db.ready(function(){
setTimeout(function(){
var i = 0;
var func = [];
while(i++ < max){
(function(i){
func.push(function(){
db.increase('key'+i, this);
})
})(i);
}
p = ep()
p.on('error', function(err){
a = new Error()
console.log(a.stack)
console.log(err, '=========')
process.exit(1);
})
p.lazy(func)
p.lazy(function(){
process.exit(0);
})
p.run()
}, 2000);
});
}