redpanda icon indicating copy to clipboard operation
redpanda copied to clipboard

Improve handling of progress conditions in non-polling fetch

Open ballard26 opened this issue 1 year ago • 4 comments

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
  • [x] v24.1.x
  • [x] v23.3.x
  • [x] v23.2.x

Release Notes

  • none

ballard26 avatar Jun 20 '24 03:06 ballard26

ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/50475#01903422-bccb-4400-b98a-c16d58307095

vbotbuildovich avatar Jun 20 '24 06:06 vbotbuildovich

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"

vbotbuildovich avatar Jun 20 '24 06:06 vbotbuildovich

/ci-repeat 5

ballard26 avatar Jun 27 '24 20:06 ballard26

All failures look to be known issues;

  • rptest.tests.raft_availability_test.RaftAvailabilityTest.test_leadership_transfer is https://github.com/redpanda-data/redpanda/issues/19953
  • rptest.tests.consumer_group_balancing_test.ConsumerGroupBalancingTest.test_coordinator_nodes_balance is https://github.com/redpanda-data/redpanda/issues/17176
  • rptest.tests.full_disk_test.FullDiskReclaimTest.test_full_disk_triggers_gc is https://github.com/redpanda-data/redpanda/issues/18014
  • rptest.tests.maintenance_test.MaintenanceTest.test_exclusive_maintenance is https://github.com/redpanda-data/redpanda/issues/20592

ballard26 avatar Jun 28 '24 09:06 ballard26

#20574 and #20592 in latest runs

piyushredpanda avatar Jul 03 '24 11:07 piyushredpanda

/backport v24.1.x

vbotbuildovich avatar Jul 03 '24 11:07 vbotbuildovich

/backport v23.3.x

vbotbuildovich avatar Jul 03 '24 11:07 vbotbuildovich

/backport v23.2.x

vbotbuildovich avatar Jul 03 '24 11:07 vbotbuildovich

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 avatar Jul 03 '24 11:07 vbotbuildovich

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 avatar Jul 03 '24 11:07 vbotbuildovich

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.

vbotbuildovich avatar Jul 03 '24 11:07 vbotbuildovich