|
| 1 | +--- |
| 2 | +title: Benchmarking -- UTxO-HD on 10.2 |
| 3 | +slug: 2025-02-performance-utxohd-10.2 |
| 4 | +authors: mgmeier |
| 5 | +tags: [benchmarking-reports] |
| 6 | +hide_table_of_contents: false |
| 7 | +--- |
| 8 | + |
| 9 | +## Setup |
| 10 | + |
| 11 | +This report compares benchmarking runs for 2 different flavours of `cardano-node`: |
| 12 | +* `10.2-regular` - regular Node performance baseline from the `10.2.x` release benchmarks. |
| 13 | +* `10.2-utxohd` - the UTxO-HD build of the Node based on that same version. |
| 14 | + |
| 15 | +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, |
| 16 | +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 |
| 17 | +workload when it comes to benchmarking UTxO-HD. |
| 18 | + |
| 19 | +We target the _in-memory backing store_ of UTxO-HD - LedgerDB V2 in this case. The on-disk backend is not used. |
| 20 | + |
| 21 | +Benchmarking is performed on a cluster of 52 block producing nodes spread across 3 different AWS regions, interconnected using a static, restricted topology. |
| 22 | + |
| 23 | +## Observations |
| 24 | + |
| 25 | +### Resource Usage |
| 26 | + |
| 27 | +1. With UTxO-HD's in-memory backend, the memory footprint increases slightly by 3%. |
| 28 | +2. Process CPU usage is moderately reduced by 9% with UTxO-HD. |
| 29 | +3. Additionally, CPU 85% spans decrease in duration by 24% (~1.1 slots). |
| 30 | + |
| 31 | +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. |
| 32 | + |
| 33 | +### Forging Loop |
| 34 | + |
| 35 | +1. Block context acquisition improves by 3ms (or 11%), while Ledger ticking takes 3ms (or 10%) longer. |
| 36 | +2. Creating a mempool snapshot is significantly faster - by 16ms (or 21%). |
| 37 | +3. As a result, a UTxO-HD block producing node is able to announce a new header 17ms (or 12%) earlier into a slot. |
| 38 | +4. Additionally, adoption time on the forger is slightly improved - by 4ms (or 5%). |
| 39 | + |
| 40 | +### Peer propagation |
| 41 | + |
| 42 | +1. Block fetch duration increases moderately by 13ms or 4%. |
| 43 | +2. Adoption times on the peers improve very slightly - by 2ms or 2%. |
| 44 | + |
| 45 | +### End-to-end propagation |
| 46 | + |
| 47 | +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. |
| 48 | + |
| 49 | +1. There is no significant difference in cluster adoption times between regular and UTxO-HD node. |
| 50 | + |
| 51 | +### Conclusion |
| 52 | + |
| 53 | +Regarding the UTxO-HD build using the in-memory LedgerDB V2 backend, we can conclude that: |
| 54 | +1. it is lighter on CPU usage compared to the regular node, albeit requiring just slightly more RAM. |
| 55 | +2. it poses no performance risk to block producers; on the contrary, the changes in forging loop metrics seem favourable compared to the regular node. |
| 56 | +3. network performance would be expeceted to be on par with the regular node. |
| 57 | +4. even under stress, there is no measurable performance regression compared to the regular node. |
| 58 | +5. as a consequence of the above, performance-wise, it's a viable replacement for the regular in-memory solution. |
| 59 | + |
| 60 | +## Attachment |
| 61 | + |
| 62 | +Full report for _value-only workload_, PDF downloadable [here](../static/pdf/benchmarking/utxohd-10.2.value-only.pdf). |
| 63 | + |
0 commit comments