Describe the bug
TrackConsumersPool uses one exclusive lock around its consumer map. Every grow, shrink, and try_grow call takes this lock, even though these operations only look up a consumer. This means memory updates from different tasks/partitions must wait for each other.
The values stored for each consumer are already safe to update from multiple threads. We should allow these lookups to happen at the same time while keeping registration and reporting exclusive.
To Reproduce
N/A
Expected behavior
No response
Additional context
No response
Describe the bug
TrackConsumersPooluses one exclusive lock around its consumer map. Everygrow,shrink, andtry_growcall takes this lock, even though these operations only look up a consumer. This means memory updates from different tasks/partitions must wait for each other.The values stored for each consumer are already safe to update from multiple threads. We should allow these lookups to happen at the same time while keeping registration and reporting exclusive.
To Reproduce
N/A
Expected behavior
No response
Additional context
No response