IntersectMBO / ouroboros-consensus

Implementation of a Consensus Layer for the Ouroboros family of protocols
https://ouroboros-consensus.cardano.intersectmbo.org
Apache License 2.0
34 stars 23 forks source link

Use the bench-ledger-ops analysis to create a benchmark #79

Open dnadales opened 1 year ago

dnadales commented 1 year ago

Background

As part of this long-term goal, we want to elaborate a benchmarking tool that, given two Consensus versions, it compares the cost of performing the 5 main ledger operations between said versions. These 5 ledger operations are:

  1. Forecast.
  2. Header tick.
  3. Header application.
  4. Block tick.
  5. Block application.

These operations combined constitute the bulk of the time used for block adoption.

We want this tool to be usable in the development process.

Motivation

We want to provide a means for the Consensus and Ledger developers, as well as the release engineers, to be able to spot performance regressions early on.

Definition of done

Produce a tool that allows to compare the cost of the main ledger operations across two Consensus versions. This comparison can be carried out by inspecting the following artefacts produced by the tool. No automation in the detection of performance regression is required.

The tool should:

Additionally, we should:

As future steps, we could consider running these benchmarks on CI, if that adds value.

Subtasks

dnadales commented 1 year ago

161 created a tool for comparing benchamrks. We can use that as a starting point. Additional improvements to this tool include (in no particular order):