redpanda
redpanda copied to clipboard
Improve handling of progress conditions in non-polling fetch
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;
And then after this PR;
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
- [x] v24.1.x
- [x] v23.3.x
- [x] v23.2.x
Release Notes
- none
ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/50475#01903422-bccb-4400-b98a-c16d58307095
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"
/ci-repeat 5
All failures look to be known issues;
rptest.tests.raft_availability_test.RaftAvailabilityTest.test_leadership_transferis https://github.com/redpanda-data/redpanda/issues/19953rptest.tests.consumer_group_balancing_test.ConsumerGroupBalancingTest.test_coordinator_nodes_balanceis https://github.com/redpanda-data/redpanda/issues/17176rptest.tests.full_disk_test.FullDiskReclaimTest.test_full_disk_triggers_gcis https://github.com/redpanda-data/redpanda/issues/18014rptest.tests.maintenance_test.MaintenanceTest.test_exclusive_maintenanceis https://github.com/redpanda-data/redpanda/issues/20592
#20574 and #20592 in latest runs
/backport v24.1.x
/backport v23.3.x
/backport v23.2.x
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
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
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