typelevel / typelevel/cats-effect
Add metrics to track batches vs singletons in external queue
Open
@Atharva-Kanherkar is already working on this.
Since Mar 2, 2025.
:mushroom: enhancement
- Dominant language
- Scala
- Stars
- 2.2k
- Forks
- 576
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 18
Description
Currently, the external queue holds tasks in two styles:
- batches, which are enqueued when a local queue spills over
- singletons, which are enqueued when tasks are scheduled externally (i.e., from blocking threads or from other threadpools)
We want to better understand the makeup of the external pool, to optimize how and when the worker runloop interacts with it. One interesting change is that now that we have integrated timers and I/O into the WSTP, this has removed one of the major sources of singletons.
It also is an important metric for applications e.g. lots of batches may suggest that the system is overloaded—in an ideal world, local queues would never have to spill their work.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.