Setup
This report compares benchmarking runs for 2 different flavours of cardano-node
:
10.2-regular
- regular Node performance baseline from the10.2.x
release benchmarks.10.2-utxohd
- the UTxO-HD build of the Node based on that same version.
For this benchmark, we're gathering various metrics under the value-only workload used in release benchmarks: Each transaction consumes 2 inputs and creates 2 outputs, changing the UTxO set. This workload produces full blocks (> 80kB) exclusively. Moreover, it's the workload that produces most stress on the UTxO set. Thus, it's the most meaningful workload when it comes to benchmarking UTxO-HD.
We target the in-memory backing store of UTxO-HD - LedgerDB V2 in this case. The on-disk backend is not used.
Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology.
Observations
Resource Usage
- With UTxO-HD's in-memory backend, the memory footprint increases slightly by 3%.
- Process CPU usage is moderately reduced by 9% with UTxO-HD.
- Additionally, CPU 85% spans decrease in duration by 24% (~1.1 slots).
Caveat: Individual metrics can't be evaluated in isolate; the resource usage profile as a whole provides insight into the system's performance and responsiveness.
Forging Loop
- Block context acquisition improves by 3ms (or 11%), while Ledger ticking takes 3ms (or 10%) longer.
- Creating a mempool snapshot is significantly faster - by 16ms (or 21%).
- As a result, a UTxO-HD block producing node is able to announce a new header 17ms (or 12%) earlier into a slot.
- Additionally, adoption time on the forger is slightly improved - by 4ms (or 5%).
Peer propagation
- Block fetch duration increases moderately by 13ms or 4%.
- Adoption times on the peers improve very slightly - by 2ms or 2%.
End-to-end propagation
This metric encompasses block diffusion and adoption across specific percentages of the benchmarking cluster, with 0.80 adoption meaning adoption on 80% of all cluster nodes.
- There is no significant difference in cluster adoption times between regular and UTxO-HD node.
Conclusion
Regarding the UTxO-HD build using the in-memory LedgerDB V2 backend, we can conclude that:
- it is lighter on CPU usage compared to the regular node, albeit requiring just slightly more RAM.
- it poses no performance risk to block producers; on the contrary, the changes in forging loop metrics seem favourable compared to the regular node.
- network performance would be expeceted to be on par with the regular node.
- even under stress, there is no measurable performance regression compared to the regular node.
- as a consequence of the above, performance-wise, it's a viable replacement for the regular in-memory solution.
Attachment
Full report for value-only workload, PDF downloadable here.