Skip to content

Add benchmarks for network, consensus, and LSM subsystems #345

@michaeljfazio

Description

@michaeljfazio

Summary

Benchmarks exist for 6 crates (crypto, ledger, mempool, primitives, serialization, storage) but are missing for network throughput, consensus chain selection at depth, LSM compaction, and the node block-apply pipeline.

Current Benchmarks

  • dugite-crypto/benches/crypto_bench.rs — Ed25519, VRF, KES operations
  • dugite-ledger/benches/utxo_bench.rs — UTxO lookups, inserts, batch operations
  • dugite-mempool/benches/mempool_bench.rs — tx admission, removal, conflict detection
  • dugite-primitives/benches/hash_bench.rs — hashing operations
  • dugite-serialization/benches/serialization_bench.rs — CBOR encode/decode
  • dugite-storage/benches/storage_bench.rs — ChainDB read/write

Proposed New Benchmarks

dugite-network

  • Protocol message encode/decode throughput
  • Multiplexer segment framing overhead
  • Pipelined ChainSync message throughput (messages/sec at various pipeline depths)
  • Handshake negotiation latency

dugite-consensus

  • Chain selection with varying fork depths (10, 100, 1000 blocks)
  • VRF leader check throughput (checks/sec)
  • Epoch transition processing time
  • Header validation throughput

dugite-lsm

  • Write throughput (inserts/sec) at various memtable sizes
  • Read throughput with varying SSTable counts (read amplification)
  • Compaction throughput and write amplification
  • Bloom filter false positive rate under load
  • Snapshot creation/restoration time

dugite-node (pipeline)

  • End-to-end block apply throughput (decode → validate → apply → store)
  • Batch block import rate (Mithril replay simulation)
  • Ledger snapshot save/restore time at various UTxO set sizes

Infrastructure

All benchmarks should use Criterion for statistical rigor and integrate with the existing nightly CI benchmark workflow (.github/workflows/benchmarks.yml).

Metadata

Metadata

Assignees

No one assigned

    Labels

    performancePerformance improvementpriority:p2Protocol compliancetestingTest coverage and quality

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions