level-cluster

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

npm install level-cluster
16 downloads in the last month

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
npm loves you