Skip to content

perf(mempool): get peer state once on broadcast routine (backport #3430)#3432

Merged
hvanz merged 1 commit intov1.xfrom
mergify/bp/v1.x/pr-3430
Jul 5, 2024
Merged

perf(mempool): get peer state once on broadcast routine (backport #3430)#3432
hvanz merged 1 commit intov1.xfrom
mergify/bp/v1.x/pr-3430

Conversation

@mergify
Copy link
Contributor

@mergify mergify bot commented Jul 5, 2024

In each broadcast routine, before sending a transaction, we read the peer's state so we can compare the height of the transaction against the peer's height. So, for each transaction we want to send, we call peer.Get(types.PeerStateKey).(PeerState) that reads the (pointer to the) peer's state. This PR makes this call once, before starting the loop through the list of transactions. This is possible because PeerState is set once (on the consensus reactor) and never unset.


PR checklist

  • Tests written/updated
  • Changelog entry added in .changelog (we use unclog to manage our changelog)
  • Updated relevant documentation (docs/ or spec/) and code comments
  • Title follows the Conventional Commits spec

This is an automatic backport of pull request #3430 done by [Mergify](https://mergify.com).

In each broadcast routine, before sending a transaction, we read the
peer's state so we can compare the height of the transaction against the
peer's height. So, for each transaction we want to send, we call
`peer.Get(types.PeerStateKey).(PeerState)` that reads the (pointer to
the) peer's state. This PR makes this call once, before starting the
loop through the list of transactions. This is possible because
`PeerState` is set once (on the consensus reactor) and never unset.

<!--

Please add a reference to the issue that this PR addresses and indicate
which
files are most critical to review. If it fully addresses a particular
issue,
please include "Closes #XXX" (where "XXX" is the issue number).

If this PR is non-trivial/large/complex, please ensure that you have
either
created an issue that the team's had a chance to respond to, or had some
discussion with the team prior to submitting substantial pull requests.
The team
can be reached via GitHub Discussions or the Cosmos Network Discord
server in
the #cometbft channel. GitHub Discussions is preferred over Discord as
it
allows us to keep track of conversations topically.
https://github.com/cometbft/cometbft/discussions

If the work in this PR is not aligned with the team's current
priorities, please
be advised that it may take some time before it is merged - especially
if it has
not yet been discussed with the team.

See the project board for the team's current priorities:
https://github.com/orgs/cometbft/projects/1

-->

---

#### PR checklist

- [ ] Tests written/updated
- [x] Changelog entry added in `.changelog` (we use
[unclog](https://github.com/informalsystems/unclog) to manage our
changelog)
- [ ] Updated relevant documentation (`docs/` or `spec/`) and code
comments
- [X] Title follows the [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) spec

---------

Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
(cherry picked from commit 890c241)
@hvanz hvanz merged commit c31e6a3 into v1.x Jul 5, 2024
@hvanz hvanz deleted the mergify/bp/v1.x/pr-3430 branch July 5, 2024 12:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant