level-cluster

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

level-cluster

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

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.

This module is installed via npm:

$ npm install level-cluster

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