Use consistent-hashing with hash-rings to distribute reads and writes across multiple multilevel nodes.
NB: Work in progress. Not currently suitable for production.
Currently assumes bytewise/hex as a keyEncoding.
This module is installed via npm:
$ npm install level-cluster
Assuming some multilevel servers listening
['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