ConfigOption/db type

From Snowblossom Wiki
Jump to: navigation, search


The database type used to store data. Just about any key value style DB could be used, but after extensive testing with jelectrum a few years ago, I've settled on the following:

  • rocksdb via rocksdbjni library

This is a quite well performing local database maintained by facebook which was based on leveldb. However, as it is C++ it is only usable on java from platforms where the jni library exist, which are linux 32bit, linux 64bit, osx, and windows 64-bit.

  • lobstack

A pure java key value store written by Fireduck. It is reasonably fast and reliable but not as fast as rocksdb and used more disk space, especially over time since it never removes anything. Also, the current wrapper doesn't support all features. For example, if you want to run a node with tx_index or addr_index it doesn't support that.

However, it works great as a way to get a node running when rocksdb is having problems.

  • atomic_file

A filesystem based key value store where each value is a separate file on the filesystem. It should work, but will be massive and filesystems will likely hate it. However, it will be very reliable and good for things like MrPlow