db backend.

This commit is contained in:
Christopher Jeffrey 2016-03-18 21:47:05 -07:00
parent d690c9ea5a
commit aaafe6eeb7

View File

@ -11,10 +11,26 @@ var db = {};
module.exports = function ldb(name, options) {
var levelup = require('levelup');
var file = bcoin.prefix + '/' + name + '-' + network.type + '.db';
var backend = process.env.BCOIN_DB;
bcoin.ensurePrefix();
if (!db[file]) {
if (bcoin.isBrowser) {
backend = 'level-js';
} else {
if (!backend || backend === 'rocksdb')
backend = 'rocksdown';
else if (backend === 'leveldb')
backend = 'leveldown';
else if (backend === 'lmdb')
backend = 'lmdb';
else if (backend === 'tree')
backend = 'tree';
else
assert(false, 'Bad DB.');
}
db[file] = new levelup(file, {
keyEncoding: 'ascii',
valueEncoding: 'binary',
@ -30,9 +46,7 @@ module.exports = function ldb(name, options) {
mapSize: options.mapSize || 150 * (1024 << 20),
writeMap: options.writeMap || false,
db: bcoin.isBrowser
? require('level-js')
: require('level' + 'down')
db: require(backend)
});
}