The EOSIO developers website says:
Nodeos stores the transaction history and a current state. The transaction history is stored in the blocks.log file on disk. State, which is changed by the execution of transactions, is currently stored using chainbase. EOSIO 2.1 introduces configurable state storage and currently supports these backing stores:
- Chainbase
- RocksDB
Chainbase is an in-memory transactional database which uses memory mapped files for persistence. Chainbase is built by block.one.
RocksDB is an open source persistent key value store. Storing state in memory is fast, however limited by the amount of available RAM. RocksDB utilises low latency storage such as flash drives and high-speed disk drives to persist data and memory caches for fast data access. For some deployments RocksDB may be a better state store. See the RocksDB website for more information.
Under what circumstances would it be better to use RocksDB instead of Chainbase? What are the specific advantages and disadvantages of each method?