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

Improve handling of progress conditions in non-polling fetch #19930

Merged
merged 1 commit into from
Jul 3, 2024

Conversation

ballard26
Copy link
Contributor

The use of ss::when_any and ss::promise<> for each progress condition resulted in unneeded allocations as well as expensive broken promises and exception propagation. This commit changes all progress conditions to signal the same ss::condition_variable instead. This simplifies their handling and greatly reduces their cost.

The profile for progress conditions before this PR;
image

And then after this PR;
image

Backports Required

  • none - not a bug fix
  • none - this is a backport
  • none - issue does not exist in previous branches
  • none - papercut/not impactful enough to backport
  • v24.1.x
  • v23.3.x
  • v23.2.x

Release Notes

  • none

@vbotbuildovich
Copy link
Collaborator

@vbotbuildovich
Copy link
Collaborator

vbotbuildovich commented Jun 20, 2024

new failures in https://buildkite.com/redpanda/redpanda/builds/50475#01903423-12e4-4950-bdd0-0a5cbe7823d7:

"rptest.tests.maintenance_test.MaintenanceTest.test_exclusive_maintenance.use_rpk=False"

new failures in https://buildkite.com/redpanda/redpanda/builds/50475#01903423-12e2-459e-ba79-81b4d832cc07:

"rptest.tests.raft_availability_test.RaftAvailabilityTest.test_leadership_transfer"

@ballard26
Copy link
Contributor Author

/ci-repeat 5

@ballard26
Copy link
Contributor Author

All failures look to be known issues;

The use of `ss::when_any` and `ss::promise<>` for each progress
condition resulted in unneeded allocations as well as expensive broken
promises and exception propagation. This commit changes all progress
conditions to signal the same `ss::condition_variable` instead. This
simplifies their handling and greatly reduces their cost.
@piyushredpanda
Copy link
Contributor

#20574 and #20592 in latest runs

@piyushredpanda piyushredpanda merged commit 146b83d into redpanda-data:dev Jul 3, 2024
15 of 18 checks passed
@vbotbuildovich
Copy link
Collaborator

/backport v24.1.x

@vbotbuildovich
Copy link
Collaborator

/backport v23.3.x

@vbotbuildovich
Copy link
Collaborator

/backport v23.2.x

@vbotbuildovich
Copy link
Collaborator

Failed to create a backport PR to v24.1.x branch. I tried:

git remote add upstream https://github.com/redpanda-data/redpanda.git
git fetch --all
git checkout -b backport-pr-19930-v24.1.x-291 remotes/upstream/v24.1.x
git cherry-pick -x 8fd8fcdf1c3a8d8ed1eb67d5649fddb63286c9c3

Workflow run logs.

@vbotbuildovich
Copy link
Collaborator

Failed to create a backport PR to v23.2.x branch. I tried:

git remote add upstream https://github.com/redpanda-data/redpanda.git
git fetch --all
git checkout -b backport-pr-19930-v23.2.x-619 remotes/upstream/v23.2.x
git cherry-pick -x 8fd8fcdf1c3a8d8ed1eb67d5649fddb63286c9c3

Workflow run logs.

@vbotbuildovich
Copy link
Collaborator

Failed to create a backport PR to v23.3.x branch. I tried:

git remote add upstream https://github.com/redpanda-data/redpanda.git
git fetch --all
git checkout -b backport-pr-19930-v23.3.x-368 remotes/upstream/v23.3.x
git cherry-pick -x 8fd8fcdf1c3a8d8ed1eb67d5649fddb63286c9c3

Workflow run logs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants