{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":492940819,"defaultBranch":"dev","name":"redpanda","ownerLogin":"ballard26","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2022-05-16T17:46:34.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3487600?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1726613245.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"410df9cce3e27d4a8f3dc7c34a95ebe110096391","ref":"refs/heads/CORE-7326","pushedAt":"2024-09-17T22:47:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"rptest: vary latency limits in cloud tests depending on provider. See CORE-7326","shortMessageHtmlLink":"rptest: vary latency limits in cloud tests depending on provider. See…"}},{"before":null,"after":"ca8cd1ef50521cbf7ee39a5e517594b9f5cb6439","ref":"refs/heads/CORE-6746","pushedAt":"2024-09-17T02:51:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: remove shard aggregation on consumer group metrics\n\nCurrently we only aggregate on the `shard` label in the consumer group\nmetrics. This aggregation doesn't result in a reduced number of metric\nseries. It does, however, cause seastar to use the\n`metric_aggregate_by_labels` class to aggregate the metrics.\n\nThis class uses a contiguous map type that isn't easily replaced and in\ncases where there are many consumer groups, kafka topics, and partitions\nthere is enough unique label sets to cause an oversized allocation in\nthe continguous map.\n\nBy removing the `shard` label from aggregation though we avoid the code\npath where `metric_aggregate_by_labels` is used and hence avoid the\noversized allocation.","shortMessageHtmlLink":"kafka: remove shard aggregation on consumer group metrics"}},{"before":null,"after":"321dfdd5331f0888fad56c63858db5ff14645fbe","ref":"refs/heads/fetch-pid-controller","pushedAt":"2024-09-12T21:57:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: fetch pid controller implementation\n\nOften when Redpanda is at CPU saturation the fetch scheduling group can\nstarve other operations. In these situations increasing the time a fetch\nrequest waits on the server before starting allows for Redpanda to apply\nbackpressure to the clients and increase batching for fetch responses.\nThis increased batching frees up CPU resources for other operations to\nuse and tends to decrease end-to-end latency.\n\nFrom testing its been found empirically that when Redpanda is at\nsaturation restricting the fetch scheduling group to only consume 20% of\noverall reactor utilization will improve end-to-end latency for a\nvariety of workloads.\n\nThis commit implements a PID controller that will dynamically adjust\nfetch debounce to ensure that the fetch scheduling group is only\nconsuming 20% of overall reactor utilization when Redpanda is at\nsaturation.","shortMessageHtmlLink":"kafka: fetch pid controller implementation"}},{"before":"afe91755956b95d698873c86f8d1316912672aca","after":"0e345af0b188596fc7269354cb9f927dc8c80650","ref":"refs/heads/fetch-bench-fix","pushedAt":"2024-08-26T20:35:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: ensure partitions are always on the same shards in fetch bench","shortMessageHtmlLink":"kafka: ensure partitions are always on the same shards in fetch bench"}},{"before":"2f66a995a798003e95288b8933ece57d299a5447","after":"afe91755956b95d698873c86f8d1316912672aca","ref":"refs/heads/fetch-bench-fix","pushedAt":"2024-08-09T22:37:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: run fetch benchmark from specific shards","shortMessageHtmlLink":"kafka: run fetch benchmark from specific shards"}},{"before":null,"after":"2f66a995a798003e95288b8933ece57d299a5447","ref":"refs/heads/fetch-bench-fix","pushedAt":"2024-08-07T03:59:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: increase number of cores used in fetch microbench to 3","shortMessageHtmlLink":"kafka: increase number of cores used in fetch microbench to 3"}},{"before":null,"after":"e8e18d6bb4c67f50881f1ef802a7494ea3c4ea58","ref":"refs/heads/fetch-opt-6","pushedAt":"2024-08-05T05:16:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"treewide: move small functions in fetch hot-path to header files\n\nThis change allows for small functions that are frequently called in the\nfetch hot-path to be inlined.","shortMessageHtmlLink":"treewide: move small functions in fetch hot-path to header files"}},{"before":"7e9a827333c4592d879a1ad5cfca8027445e6021","after":"e298dd5afbf31a1a80e5c089c91fee3423d3f53b","ref":"refs/heads/fetch-microbench","pushedAt":"2024-08-01T23:01:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: add fetch microbenchmark","shortMessageHtmlLink":"kafka: add fetch microbenchmark"}},{"before":"a4c7d0053052d354dd5082098b0382151e683a98","after":"7e9a827333c4592d879a1ad5cfca8027445e6021","ref":"refs/heads/fetch-microbench","pushedAt":"2024-08-01T04:30:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: add fetch microbenchmark","shortMessageHtmlLink":"kafka: add fetch microbenchmark"}},{"before":"137247e6b1a77f88985c10d556cecab6061d3323","after":"a4c7d0053052d354dd5082098b0382151e683a98","ref":"refs/heads/fetch-microbench","pushedAt":"2024-08-01T04:23:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: add fetch microbenchmark","shortMessageHtmlLink":"kafka: add fetch microbenchmark"}},{"before":"9e83ab95cb2453bbc01769701ab345de4fe45d11","after":"137247e6b1a77f88985c10d556cecab6061d3323","ref":"refs/heads/fetch-microbench","pushedAt":"2024-07-30T19:22:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: add fetch microbenchmark","shortMessageHtmlLink":"kafka: add fetch microbenchmark"}},{"before":null,"after":"9e83ab95cb2453bbc01769701ab345de4fe45d11","ref":"refs/heads/fetch-microbench","pushedAt":"2024-07-30T05:11:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: add fetch microbenchmark","shortMessageHtmlLink":"kafka: add fetch microbenchmark"}},{"before":"0bbfaaa9ebf47f18d05a5b87ec4c88c5ca894f61","after":"33aeba259dbb8a72141e6eac2bea8824a365bec7","ref":"refs/heads/dev","pushedAt":"2024-07-30T05:11:34.000Z","pushType":"push","commitsCount":9882,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"k/group: abort recovery when the read is incomplete\n\nIf storage layer will return early from the reader the group stm is not\nfully recovered. In this case a consumer offset coordinator can not\nstart replying to client requests as the in memory consumer group\nrepresentation may be incomplete. Added a code preventing this situation\nfrom happening.\n\nWhen incomplete read happened the group manager requests the underlying\npartition leader to step down. This will trigger another leader election\nand will trigger leadership notification leading to group recovery.\n\nSigned-off-by: Michał Maślanka ","shortMessageHtmlLink":"k/group: abort recovery when the read is incomplete"}},{"before":null,"after":"9a91cab6d5e97c7c091c07651d245a4633133039","ref":"refs/heads/fetch-opt-4","pushedAt":"2024-07-23T23:40:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"treewide: use ss::socket_address instead of ss::sstring for client_address_t","shortMessageHtmlLink":"treewide: use ss::socket_address instead of ss::sstring for client_ad…"}},{"before":null,"after":"374ea77c2347584178323807c75ce0176a9b2d3c","ref":"refs/heads/fetch-opt-3","pushedAt":"2024-07-23T04:40:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: avoid copying fetch.requests in non-polling fetch impl","shortMessageHtmlLink":"kafka: avoid copying fetch.requests in non-polling fetch impl"}},{"before":"a1923bff4d1f56dfe92fd77f5332a9799cb965aa","after":"65002becd3dac769ff1a551d6b2888e63733df44","ref":"refs/heads/delete-record-test","pushedAt":"2024-07-14T19:50:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"cloud_storage: add delete_records test for offsets only in cloud storage","shortMessageHtmlLink":"cloud_storage: add delete_records test for offsets only in cloud storage"}},{"before":null,"after":"a1923bff4d1f56dfe92fd77f5332a9799cb965aa","ref":"refs/heads/delete-record-test","pushedAt":"2024-07-14T19:18:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"cloud_storage: add delete_records test for offsets only in cloud storage","shortMessageHtmlLink":"cloud_storage: add delete_records test for offsets only in cloud storage"}},{"before":"3ba7a3472510916c833854b250f2af3fe819205e","after":"8fd8fcdf1c3a8d8ed1eb67d5649fddb63286c9c3","ref":"refs/heads/fetch-opt-2","pushedAt":"2024-07-03T04:39:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: improve handling of progress conditions in fetch\n\nThe use of `ss::when_any` and `ss::promise<>` for each progress\ncondition resulted in unneeded allocations as well as expensive broken\npromises and exception propagation. This commit changes all progress\nconditions to signal the same `ss::condition_variable` instead. This\nsimplifies their handling and greatly reduces their cost.","shortMessageHtmlLink":"kafka: improve handling of progress conditions in fetch"}},{"before":"a5f58db04e4dce80f04d5bffd1d64d2630a28d9c","after":"e96451ad86d860097a7f1928ac3445f411459318","ref":"refs/heads/fetch-opt","pushedAt":"2024-07-03T03:27:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"treewide: remove coroutines in validate_fetch_offset callees\n\nThe most common path for validate_fetch_offset results in a number of\nshort lived coroutines. In these cases the allocation/deallocation for\nthe coroutine's frame ends up dominating the runtime for the function.\n\nThis commit removes the coroutines in favor for then chains which can\navoid the allocation if the task quota hasn't been met.","shortMessageHtmlLink":"treewide: remove coroutines in validate_fetch_offset callees"}},{"before":"59ee7713967ca75cdcb0eeee510344ecc9113395","after":"a5f58db04e4dce80f04d5bffd1d64d2630a28d9c","ref":"refs/heads/fetch-opt","pushedAt":"2024-07-03T03:26:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"treewide: remove coroutines in validate_fetch_offset callees\n\nThe most common path for validate_fetch_offset results in a number of\nshort lived coroutines. In these cases the allocation/deallocation for\nthe coroutine's frame ends up dominating the runtime for the function.\n\nThis commit removes the coroutines in favor for then chains which can\navoid the allocation if the task quota hasn't been met.","shortMessageHtmlLink":"treewide: remove coroutines in validate_fetch_offset callees"}},{"before":null,"after":"4544068bce12fd2f964435ea9ce7d4722b6ae142","ref":"refs/heads/non-polling-debounce","pushedAt":"2024-06-28T09:42:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: add support for debounce mode for non-polling fetch","shortMessageHtmlLink":"kafka: add support for debounce mode for non-polling fetch"}},{"before":"57dbe14805cba9ee3cae9ba34625c115465947e2","after":"59ee7713967ca75cdcb0eeee510344ecc9113395","ref":"refs/heads/fetch-opt","pushedAt":"2024-06-27T03:05:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"treewide: remove coroutines in validate_fetch_offset callees\n\nThe most common path for validate_fetch_offset results in a number of\nshort lived coroutines. In these cases the allocation/deallocation for\nthe coroutine's frame ends up dominating the runtime for the function.\n\nThis commit removes the coroutines in favor for then chains which can\navoid the allocation if the task quota hasn't been met.","shortMessageHtmlLink":"treewide: remove coroutines in validate_fetch_offset callees"}},{"before":"6314eec2b85cdb7f968f3cf786663fcd07f19f26","after":"57dbe14805cba9ee3cae9ba34625c115465947e2","ref":"refs/heads/fetch-opt","pushedAt":"2024-06-24T00:05:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"treewide: remove coroutines in validate_fetch_offset callees\n\nThe most common path for validate_fetch_offset results in a number of\nshort lived coroutines. In these cases the allocation/deallocation for\nthe coroutine's frame ends up dominating the runtime for the function.\n\nThis commit removes the coroutines in favor for then chains which can\navoid the allocation if the task quota hasn't been met.","shortMessageHtmlLink":"treewide: remove coroutines in validate_fetch_offset callees"}},{"before":"91358e9c458cb35218d5cac3d7f68b6150414291","after":"6314eec2b85cdb7f968f3cf786663fcd07f19f26","ref":"refs/heads/fetch-opt","pushedAt":"2024-06-23T23:55:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"treewide: remove coroutines in validate_fetch_offset callees\n\nThe most common path for validate_fetch_offset results in a number of\nshort lived coroutines. In these cases the allocation/deallocation for\nthe coroutine's frame ends up dominating the runtime for the function.\n\nThis commit removes the coroutines in favor for then chains which can\navoid the allocation if the task quota hasn't been met.","shortMessageHtmlLink":"treewide: remove coroutines in validate_fetch_offset callees"}},{"before":null,"after":"3ba7a3472510916c833854b250f2af3fe819205e","ref":"refs/heads/fetch-opt-2","pushedAt":"2024-06-20T02:59:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"kafka: improve handling of progress conditions in fetch\n\nThe use of `ss::when_any` and `ss::promise<>` for each progress\ncondition resulted in unneeded allocations as well as expensive broken\npromises and exception propagation. This commit changes all progress\nconditions to signal the same `ss::condition_variable` instead. This\nsimplifies their handling and greatly reduces their cost.","shortMessageHtmlLink":"kafka: improve handling of progress conditions in fetch"}},{"before":null,"after":"91358e9c458cb35218d5cac3d7f68b6150414291","ref":"refs/heads/fetch-opt","pushedAt":"2024-06-09T04:56:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"treewide: remove coroutines in validate_fetch_offset callees\n\nThe most common path for validate_fetch_offset results in a number of\nshort lived coroutines. In these cases the allocation/deallocation for\nthe coroutine's frame ends up dominating the runtime for the function.\n\nThis commit removes the coroutines in favor for then chains which can\navoid the allocation if the task quota hasn't been met.","shortMessageHtmlLink":"treewide: remove coroutines in validate_fetch_offset callees"}},{"before":"972b980fc374b989d7c1fe903bf64a3fda2263cc","after":"1ee81f170815d34adf737e0874df94914c1b1f6b","ref":"refs/heads/1282-fix","pushedAt":"2024-06-01T06:24:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"cluster/tests: remove even_topic_c_bench from leader_balancer_bench\n\nThe `recommended_assignment` method this benchmarked has since been\nremoved. Hence there is nothing to benchmark here.","shortMessageHtmlLink":"cluster/tests: remove even_topic_c_bench from leader_balancer_bench"}},{"before":"8aec6a6d79227c4f2fc9d5b1a9dbdc9b12b4274c","after":"972b980fc374b989d7c1fe903bf64a3fda2263cc","ref":"refs/heads/1282-fix","pushedAt":"2024-06-01T06:23:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"cluster/tests: remove even_topic_c_bench from leader_balancer_bench\n\nThe `recommended_assignment` method this benchmarked has since been\nremoved. Hence there is nothing to benchmark here.","shortMessageHtmlLink":"cluster/tests: remove even_topic_c_bench from leader_balancer_bench"}},{"before":"6349f80903cebe25237b0b7cddbbed921c7da863","after":"8aec6a6d79227c4f2fc9d5b1a9dbdc9b12b4274c","ref":"refs/heads/1282-fix","pushedAt":"2024-06-01T00:19:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"cluster/tests: remove even_topic_c_bench from leader_balancer_bench\n\nThe `recommended_assignment` method this benchmarked has since been\nremoved. Hence there is nothing to benchmark here.","shortMessageHtmlLink":"cluster/tests: remove even_topic_c_bench from leader_balancer_bench"}},{"before":null,"after":"6349f80903cebe25237b0b7cddbbed921c7da863","ref":"refs/heads/1282-fix","pushedAt":"2024-05-31T17:42:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ballard26","name":"Brandon Allard","path":"/ballard26","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3487600?s=80&v=4"},"commit":{"message":"cluster/tests: remove even_topic_c_bench from leader_balancer_bench\n\nThe `recommended_assignment` method this benchmarked has since been\nremoved. Hence there is nothing to benchmark here.","shortMessageHtmlLink":"cluster/tests: remove even_topic_c_bench from leader_balancer_bench"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xN1QyMjo0NzoyNS4wMDAwMDBazwAAAAS5DXgz","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xN1QyMjo0NzoyNS4wMDAwMDBazwAAAAS5DXgz","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0zMVQxNzo0MjoxNi4wMDAwMDBazwAAAARZRI4e"}},"title":"Activity · ballard26/redpanda"}