Benchmark
Real-world Conversion Benchmark
The following benchmark was performed on a production Cosmos node dataset to measure end-to-end LevelDB to PebbleDB conversion performance.
============================================================
CONVERSION METRICS SUMMARY
============================================================
Global Statistics:
Total duration: 4m9s
Total keys: 216404586
Total data read: 39.00 GiB
Total data written: 39.00 GiB
Avg throughput: 866154 keys/sec, 159.83 MB/sec
Write/Read ratio: 100.0%
Per-Database Statistics:
blockstore.db:
Keys: 57
Duration: 0s
Throughput: 1835 keys/sec, 20.68 MB/sec
Avg sizes: key=1182 B, value=10638 B
tx_index.db:
Keys: 14655
Duration: 0s
Throughput: 673383 keys/sec, 51.10 MB/sec
Avg sizes: key=8 B, value=72 B
application.db:
Keys: 216382918
Duration: 4m8s
Throughput: 871172 keys/sec, 159.83 MB/sec
Avg sizes: key=19 B, value=173 B
state.db:
Keys: 6956
Duration: 0s
Throughput: 12969 keys/sec, 432.40 MB/sec
Avg sizes: key=3496 B, value=31465 B
============================================================
Key Takeaways
- ~216M keys migrated in 4 minutes
- Sustained throughput of ~160 MB/s
- Conversion speed dominated by
application.db - PebbleDB size overhead: +3.7%
- Zero data loss, 1:1 write/read parity
ℹ️ The benchmark was performed on a machine with an AMD Ryzen 9 8940HX CPU, 32 GiB of DDR5 RAM, and an NVMe disk using the Btrfs file system. The temporary folder was located on the NVMe disk, not in RAM.