Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expand the QA to include a performance benchmark #834

Open
Tracked by #42
lasarojc opened this issue May 15, 2023 · 5 comments
Open
Tracked by #42

Expand the QA to include a performance benchmark #834

lasarojc opened this issue May 15, 2023 · 5 comments
Labels
enhancement New feature or request P:tech-debt Priority: Technical debt that needs to be paid off to enable us to move faster, reliably qa Quality assurance team-meeting A topic to discuss in our internal core team meeting

Comments

@lasarojc
Copy link
Contributor

Feature Request

Summary

The QA process should be extended with a performance benchmark

Problem Definition

The QA report does not provide much information on the performance of the system.
It should be extended to include reproducible tests with

  • fixed and varied topologies
  • different sizes of proposals
  • different sizes of vote extensions

Proposal

  • Predefine large topologies and workloads, including different transaction, vote extension and proposer set sizes.
  • Run the tests multiple times on these topologies.
  • Determine latency and throughput at different percentiles for comparison with previous and past runs.
@lasarojc lasarojc added enhancement New feature or request needs-triage This issue/PR has not yet been triaged by the team. qa Quality assurance team-meeting A topic to discuss in our internal core team meeting labels May 15, 2023
@lasarojc
Copy link
Contributor Author

Going into the solution space, after a brief discussion it seems that a quick and dirty way of fixing topologies in our large topology tests would be

  • define a topology
  • generate the configuration to include neighbors in the topology as persistentPeers
  • set the maxOutgoingConnections to len(persistentPeers) OR turn the PEX off

In case o timeouts, this settings will recreate the same connections, but timeouts are more of a concern on small k8 networks.

@sergio-mena sergio-mena removed the needs-triage This issue/PR has not yet been triaged by the team. label May 15, 2023
@sergio-mena
Copy link
Contributor

Thanks for this issue. I just hooked it to #42, which tracks all QA-related work that is (or will be) planned

@cason
Copy link
Contributor

cason commented May 17, 2023

In case o timeouts, this settings will recreate the same connections, but timeouts are more of a concern on small k8 networks.

Actually, in case of disconnection from a persistent peer, new connection attempts are made, regardless of the reason for the disconnection.

The only exception here is when seed nodes disconnect from peers after crawling their addresses or providing them a fresh list of address. Recall, please, to not set seed nodes as persistent peers.

@cason
Copy link
Contributor

cason commented May 17, 2023

different sizes of proposals

You probably mean here different block sizes. Proposals, meaning here the message and type, are fixed size.

@cason
Copy link
Contributor

cason commented May 17, 2023

An important output of this approach, in my opinion, is to understand whether or how much the topology impacts on performance. We need to establish whether we can compare performance results obtained in similar setups (size system size and workload) but having different topologies. While it is clear that different topologies in real-world WAN setups probably lead to different performance, it is not clear whether in a restricted/LAN/same-region setup the impact of the topology is really relevant.

@thanethomson thanethomson added the P:tech-debt Priority: Technical debt that needs to be paid off to enable us to move faster, reliably label Jun 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request P:tech-debt Priority: Technical debt that needs to be paid off to enable us to move faster, reliably qa Quality assurance team-meeting A topic to discuss in our internal core team meeting
Projects
No open projects
Status: Todo
Development

No branches or pull requests

4 participants