Skip to content

Instantly share code, notes, and snippets.

@unicodefreak
Created June 26, 2015 14:49
Show Gist options
  • Save unicodefreak/33f53d520d61d823dab2 to your computer and use it in GitHub Desktop.
Save unicodefreak/33f53d520d61d823dab2 to your computer and use it in GitHub Desktop.
'use strict';
var async = require('async');
var logger = require('winston');
var Riak = require('basho-riak-client');
var _ = require("underscore");
var hash = require("./hash"),
argv = require('optimist').argv,
modeSave = argv.save,
modeQuery = argv.query;
logger.remove(logger.transports.Console);
logger.add(logger.transports.Console, {
level : 'debug',
colorize: true,
timestamp: true
});
if ((modeSave && modeQuery) || (!modeSave && !modeQuery)) {
logger.error("Should specify either --save or --query");
process.exit(1);
}
logger.info("Starting Client");
var node1 = new Riak.Node({remoteAddress: '10.135.232.35', remotePort: 8087});
var node2 = new Riak.Node({remoteAddress: '10.135.232.36', remotePort: 8087});
var node3 = new Riak.Node({remoteAddress: '10.135.232.37', remotePort: 8087});
var node4 = new Riak.Node({remoteAddress: '10.135.232.38', remotePort: 8087});
var node5 = new Riak.Node({remoteAddress: '10.135.232.39', remotePort: 8087});
var cluster = new Riak.Cluster({nodes: [node1, node2, node3, node4, node5]});
var client = new Riak.Client(cluster);
var count = 1,
index1 = _.range(1000, 2000),
index2 = _.range(2000, 3000);
if (modeSave) {
var doSave = function (done) {
var random;
hash.createRandomString(function (v) {
random = v;
});
var riakObj1 = new Riak.Commands.KV.RiakObject();
riakObj1.setContentType('text/plain');
riakObj1.setBucket('users');
riakObj1.setKey(random);
riakObj1.setValue('...user data...');
riakObj1.addToIndex('index1_bin', _.sample(index1));
riakObj1.addToIndex('index2_bin', _.sample(index2));
client.storeValue({value: riakObj1}, function (err, res) {
if (err) {
throw new Error(err);
}
count += 1;
done();
});
};
setInterval(function () {
logger.info(count + " saves/minute");
count = 0;
}, 60000);
async.forever(function (loop) {
async.parallel([
doSave,
doSave,
doSave,
doSave,
doSave
], function (err) {
if (err) {
throw new Error(err);
}
loop();
});
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment