#10408·eos

rocksdb is too slow and taking too much RAM

Author: cc32d9Created May 30, 2021Updated May 24, 2022

I'm porting EOSIO 2.1 to WAX (https://github.com/cc32d9/wax2.1), and tried to run a node with rockdb backend:

backing-store = rocksdb
persistent-storage-num-threads = 6
persistent-storage-max-num-files = 10
persistent-storage-write-buffer-size-mb = 512

state history is also enabled.

When starting from a portable snapshot, nodeos RAM consumption grew up to 88GB, then it lowered to 67GB (still twice as much as chaindb in heap mode). After stopping and starting the node, it occupies about 12GB in RAM.

Resynching is very slow: at 100% CPU load (Intel Core i9-9900K, cores running at 4.5Ghz), it chews up 27 blocks per 30 seconds from recent WAX history. A node with chaindb would normally resync at about 1000 blocks per second.

the storage I/O is very low, but it's difficult to compare because the node is not processing as many blocks per second as one with chaindb.