migrate_database_lmdb_to_rocksdb improvements
The migrate_database_lmdb_to_rocksdb option is running for a very long time with the current ledger size (almost 200 million blocks). On my local machine it took 65 minutes to complete. Nothing is written on screen during this process and users may think the process has stalled.
This PR adds some progress feedback. One update for each of the 7 tables that are migrated.
It also adds a simple disk space check to warn users if they might not have enough space to complete the migration.
~~The current converted RocksDb database is 73 GB, and the warning is given if the system has less than 75GB available.~~
The warning is given based on the size of the LMDB database that is being migrated. The final RocksDb size is approximately 65% of the LMDB space.
This should be using node logger not cout, otherwise logs aren't saved to disk. There are some places in the existing code that are using cout too, but those are leftovers. Also, printing progress every x converted entries would be nice.
I have been unable to get node logger implemented. I don't think it's important since the migration is a one time process. I've updated the code with more granular updates to indicate that progress is being made. Here is the output of a full production lmdb to rocksDb migration:
I have been unable to get node logger implemented. I don't think it's important since the migration is a one time process.
And that's exactly the reason why it should be logged well, in line with production ready code. In case something goes wrong there should be a persistent record.
@pwojcikdev
I got the Nano logger implemented now.
Instead of outputting dots for each step it is now giving actual numbers to the log.