Saves at least 10-20G out of a 150G blockchain just by switching.
No way. Blockchain isn't stored in LevelDB. It is stored in raw data files (blk*.dat) and raw undo files (rev*.dat). LevelDB is used only to store indices into those raw files. "Just switching" wouldn't change the situation much, it takes rather substantial rewrite to change the storage engine in Bitcoin Core.
I see, on top of those, they're also storing the chainstate.
Wait, you mean they're not actually compressing the blk files at the moment? That's even worse.
If you want performance there are far better choices than LevelDB. The whole point of using LevelDB is for the compression, wtf are they not using it for the blocks?
Compressing the block files saves way more than 10G, for a 150G blockchain you save at least 20G with something like Lz4.
You would have thought they'd actually care about storage space when they're the one bitching about larger blocks and using Raspberry Pi as an excuse for small blocks.
Even then I still don't get why they are stuck with LevelDB, RocksDB is clearly far superior.
When the index and chainstate alone reaches 150G, switching to RocksDB will still save 10G or more.
And why are they not compressing the blk files?
When you compress them you read more in each read, CPU speed is not the bottleneck, memory speed is, so when you read less memory, you gain more speed even if you use more CPU for compression/decompression.