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.

Next Steps

  • Usage — Start converting your databases
  • Overview — Learn more about Pebblify