Information about our RocksDB implementation can be found here:
https://docs.nano.org/running-a-node/rocksdb-ledger-backend/
Initial testing has shown that bootstrapping on lower end devices is faster, while slower on higher end devices. Details below:
Ubuntu, 12 threads 3.4GHZ CPU, 16GB RAM, SSD:
--- | LMDB | RocksDB |
---|---|---|
Full sync (live) | 3h 15m | 4h 15m |
Ubuntu, 1vCPU, 2GB RAM, SSD:
--- | LMDB | RocksDB |
---|---|---|
* Parital sync | 7h 15m | 5h 30m |
*3.5 million checked blocks
Figure 1 below shows a partial bootstrap of the RockDB backend on the left and LMDB on the right. The peaks in the Disk I/O are due to flushing in bulk and compaction process. While more extreme the overall area underneath the graphs is lower for RocksDB so there is less overall disk I/O.
Figure 1 - Various computer statics for the 1vCPU, 2GB RAM Ubuntu 18.04 Server
However there are a lot of settings which can be changed (see previous link). The default config options used in the statistics above have since been lowered, so it would be beneficial to get comparisons of bootstrapping on as many devices as possible using both the default and extreme values where lots of RAM is available. If changing memtable_size
to be higher, also modify total_memtable_size
as that will otherwise limit the effectiveness of it.
Where possible, testing during spam tests on the Beta network can provide valuable information as well, as it is expected this is where the RocksDB backend will outperform the LMDB backend.