Skip to content

perf(p2p): Remove broadcast return channel (backport #3182)#3480

Merged
melekes merged 3 commits intov1.xfrom
mergify/bp/v1.x/pr-3182
Jul 10, 2024
Merged

perf(p2p): Remove broadcast return channel (backport #3182)#3480
melekes merged 3 commits intov1.xfrom
mergify/bp/v1.x/pr-3182

Conversation

@mergify
Copy link
Contributor

@mergify mergify bot commented Jul 10, 2024

Remove the return channel and waitgroup from switch.Broadcast as its unused. This was costing us some CPU overhead (2% of broadcast routine as it stands right now, but broadcast routine time should be dropping) and one extra goroutine. This removes more overhead than what #3180 may introduce.

It also better highlights the point that maybe all broadcast usecases should consider using TrySend (And we potentially adapt channel buffers), ala the point in #3151 . (This would have significant system-wide impact, by significantly lowering the number of timers/scheduler overhead we have)


PR checklist

  • Tests written/updated - Simplifies code, the behavior being removed was never tested!
  • 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 #3182 done by [Mergify](https://mergify.com).

Remove the return channel and waitgroup from switch.Broadcast as its
unused. This was costing us some CPU overhead (2% of broadcast routine
as it stands right now, but broadcast routine time should be dropping)
and one extra goroutine. This removes more overhead than what #3180 may
introduce.

It also better highlights the point that maybe all broadcast usecases
should consider using TrySend (And we potentially adapt channel
buffers), ala the point in #3151 . (This would have significant
system-wide impact, by significantly lowering the number of
timers/scheduler overhead we have)

---

#### PR checklist

- [x] Tests written/updated - Simplifies code, the behavior being
removed was never tested!
- [x] Changelog entry added in `.changelog` (we use
[unclog](https://github.com/informalsystems/unclog) to manage our
changelog)
- [x] 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 e731a3f)

# Conflicts:
#	p2p/switch.go
#	p2p/switch_test.go
@mergify mergify bot requested a review from a team as a code owner July 10, 2024 10:31
@mergify mergify bot requested a review from a team July 10, 2024 10:31
@mergify mergify bot added the conflicts label Jul 10, 2024
@mergify

This comment was marked as resolved.

@melekes melekes merged commit f231bf0 into v1.x Jul 10, 2024
@melekes melekes deleted the mergify/bp/v1.x/pr-3182 branch July 10, 2024 11:04
ValarDragon added a commit to osmosis-labs/cometbft that referenced this pull request Aug 19, 2024
…ometbft#3480)

Remove the return channel and waitgroup from switch.Broadcast as its
unused. This was costing us some CPU overhead (2% of broadcast routine
as it stands right now, but broadcast routine time should be dropping)
and one extra goroutine. This removes more overhead than what cometbft#3180 may
introduce.

It also better highlights the point that maybe all broadcast usecases
should consider using TrySend (And we potentially adapt channel
buffers), ala the point in cometbft#3151 . (This would have significant
system-wide impact, by significantly lowering the number of
timers/scheduler overhead we have)

---

- [x] Tests written/updated - Simplifies code, the behavior being
removed was never tested!
- [x] Changelog entry added in `.changelog` (we use
[unclog](https://github.com/informalsystems/unclog) to manage our
changelog)
- [x] Updated relevant documentation (`docs/` or `spec/`) and code
comments
- [x] Title follows the [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) spec
<hr>This is an automatic backport of pull request cometbft#3182 done by
[Mergify](https://mergify.com).

---------

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
ValarDragon added a commit to osmosis-labs/cometbft that referenced this pull request Aug 19, 2024
…ometbft#3480) (#134)

Remove the return channel and waitgroup from switch.Broadcast as its
unused. This was costing us some CPU overhead (2% of broadcast routine
as it stands right now, but broadcast routine time should be dropping)
and one extra goroutine. This removes more overhead than what cometbft#3180 may
introduce.

It also better highlights the point that maybe all broadcast usecases
should consider using TrySend (And we potentially adapt channel
buffers), ala the point in cometbft#3151 . (This would have significant
system-wide impact, by significantly lowering the number of
timers/scheduler overhead we have)

---

- [x] Tests written/updated - Simplifies code, the behavior being
removed was never tested!
- [x] Changelog entry added in `.changelog` (we use
[unclog](https://github.com/informalsystems/unclog) to manage our
changelog)
- [x] Updated relevant documentation (`docs/` or `spec/`) and code
comments
- [x] Title follows the [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) spec
<hr>This is an automatic backport of pull request cometbft#3182 done by
[Mergify](https://mergify.com).

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
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.

3 participants