cosmos / cosmos-sdk

:chains: A Framework for Building High Value Public Blockchains :sparkles:
https://cosmos.network/
Apache License 2.0
6.31k stars 3.65k forks source link

Benchmark state machine logic #984

Closed adrianbrink closed 1 year ago

adrianbrink commented 6 years ago

Having released new staking to a public testnet we noticed that it slows down the block production. We should have a framework that allows us to benchmark the per block actions. This will allow us to quickly identify performance issues and optimize reads/writes.

@rigelrozanski

cwgoes commented 6 years ago

One option: pipe statistics to Riemann, which has an official Go client, for easy visualization and debugging.

cwgoes commented 6 years ago

I think we can use the same benchmark for this and for gas (https://github.com/cosmos/cosmos-sdk/issues/1008).

jackzampolin commented 6 years ago

My friends over at InfluxDB wrote this tool to debug their own datastore: https://github.com/influxdata/grade I would suggest this! But I think regardless this is an important piece of hardening.

jackzampolin commented 5 years ago

Closing this issue, will track testing improvements elsewhere.

rigelrozanski commented 5 years ago

Where?

alexanderbez commented 5 years ago

We don't have any direct state-machine benchmarks. Our closest bet would be simulation.

cwgoes commented 5 years ago

I think this is absolutely something the SDK should include. When we want to scale e.g. Gaia to high TPS we'll need to spend a lot of time optimizing transaction execution.

elias-orijtech commented 1 year ago

Similar to or duplicate of https://github.com/cosmos/cosmos-sdk/issues/13981?

tac0turtle commented 1 year ago

they seem different one is add telemetry and this one is to do bechmarks, want to work on this @elias-orijtech