typelevel / typelevel/cats-effect

Add metrics to track batches vs singletons in external queue

Open
#4,269 8 comments 0 reactions 1 assignee View on GitHub

@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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.