Use consistent-hashing with hash-rings to distribute reads and writes across multiple multilevel nodes.
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
data
test
.gitignore
.jshintrc
.travis.yml
Gruntfile.js
LICENSE
README.md
index.js
package.json

README.md

level-cluster

Use consistent-hashing with hash-rings to distribute reads and writes across multiple multilevel nodes.

build status

NB: Work in progress. Not currently suitable for production.

level-cluster tries to implement the levelup API but on top of a multilevel cluster.

Currently assumes bytewise/hex as a keyEncoding.

Installation

This module is installed via npm:

$ npm install level-cluster

Example Usage

Assuming some multilevel servers listening on ['127.0.0.1:3000', '127.0.0.1:3001', '127.0.0.1:3002']:

var servers = ['127.0.0.1:3000', '127.0.0.1:3001', '127.0.0.1:3002'];
var LevelCluster = require('level-cluster');
var db = new LevelCluster(servers);

 // will consistently hash the write to a server based on the key
db.put(...);

// will consistently hash all the writes and deletes to the right servers
db.batch(...);

// will retrieve the right data from the right server
db.get(...);

// will delete the right data from the right server
db.del(...);

db.createReadStream();
// will stream the data from the different servers and create a unified stream
// AND make sure it's sorted

generatorStream().pipe(db.createWriteStream());
// will distribute writes and deletes across the cluster based on the hashes of
// keys