You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Using LMDB would solve a lot of issues (primarily the LRU caches littered all over the wallet code). The wallet requires much faster reads than the chain, LMDB offers that, as well as hot backups (something that's currently hacked into the leveldb backend and only works because iterators snapshot the tree).
I've rewritten the node.js lmdb module completely (rvagg/archived-lmdb#14) and it seems stable enough. It doesn't expose envs/dbs/txns since it's a mirror of the leveldb API. Faster reads and hot backups are nice though.
Further rewriting: transactions (the non-bitcoin kind) would solve a lot of problems. A future module that properly exposes all LMDB features would be ideal (one for node.js exists, but the API is synchronous). There were a few times I tried to hack in a key "state" by wrapping a leveldb batch because I needed txns so bad.
The text was updated successfully, but these errors were encountered:
Thanks for making and constantly improving bcoin @chjj! Curious whether you'd recommend LMDB in production over LevelDB in its current state. (in this PR it seemed you had yet to try the new module in production, but were planning to).
Using LMDB would solve a lot of issues (primarily the LRU caches littered all over the wallet code). The wallet requires much faster reads than the chain, LMDB offers that, as well as hot backups (something that's currently hacked into the leveldb backend and only works because iterators snapshot the tree).
I've rewritten the node.js lmdb module completely (rvagg/archived-lmdb#14) and it seems stable enough. It doesn't expose envs/dbs/txns since it's a mirror of the leveldb API. Faster reads and hot backups are nice though.
Further rewriting: transactions (the non-bitcoin kind) would solve a lot of problems. A future module that properly exposes all LMDB features would be ideal (one for node.js exists, but the API is synchronous). There were a few times I tried to hack in a key "state" by wrapping a leveldb batch because I needed txns so bad.
The text was updated successfully, but these errors were encountered: