IntersectMBO / cardano-ledger

The ledger implementation and specifications of the Cardano blockchain.
Apache License 2.0
260 stars 157 forks source link

Ledger Quantitative Timeliness Agreements, QTAs #4637

Open nfrisby opened 1 month ago

nfrisby commented 1 month ago

@njd42 suggested these a while ago, and there was some planning around them, but for various reasons (I think personnel churn), the work disappeared.

The basic idea (feel free to edit this, Neil) is that the different components/teams need to specify their expected performance profiles, and add some benchmarks/tests to catch performance regressions/violations.

For now, I'm just opening this same Issue mutatis mutandi in the Plutus, Ledger, Consensus, and Network repositories. Each team will at least need to consider what they want to do and want others to do.

semanticphilosopher commented 1 month ago

The notion of a QTA is that you recognise the "demand" and the "supply" - the supply here is the timeliness, the demand here is the computation (and other) resources required to complete the task.

If you don't acknowledge and capture the consumption of resources then you have the real risk of not meeting the timeliness when things are integrated, and you then end up in the tali chasing action of trying to improve performance right near deadlines.