@movable/hash_ring
v1.0.0
Published
Consistent hashing C++ Add-on for node.js
Downloads
45
Readme
node-hash-ring - Consistent Hashing C++ Add-on for node.js
See this blog post for more information.
Installation
Via npm:
npm install hash_ring
Via git:
git clone http://github.com/bnoguchi/node-hash-ring.git
#### node < 0.8.0
cd node-hash-ring/src
node-waf configure build
#### node >= 0.8.0
cd node-hash-ring
node-gyp configure build
Example
var HashRing = require("./lib/hash_ring");
// Create a cluster of 3 servers weighted so that 127.0.0.2:8080 stores twice as many
// keys as 127.0.0.1:8080, and 127.0.0.3:8080 stores 4x as many keys as 127.0.0.1:8080
// and 2x as many keys as 127.0.0.2:8080
var ring = new HashRing({"127.0.0.1:8080": 1, "127.0.0.2:8080": 2, "127.0.0.3:8080":4});
console.log(ring.getNode("users:102") ); // Should be 127.0.0.3:8080
See ./test/test_distribution.js for another example: node test/test_distribution.js
Tests
To run the tests:
$ make test
License
MIT License
Author
Brian Noguchi