hiero-ledger / hiero-ledger/hiero-consensus-node

Stop using managed blocker API

Open
#11,430 0 comments 0 reactions 1 assignee Claimed by @cody-littley View on GitHub
Platform
Dominant language
Java
Stars
406
Forks
226
Avg merge
3d 4h
Merged PRs (30d)
210

Description

The `ForkJoinPool.ManagedBlocker` API is clunky and has performance issues. It would be really nice if the wiring framework could implement back pressure (and other blocking operations) without use of a managed blocker.

As an alternative, I propose creating a mechanism that would allow a sequential task to increase the dependency count of the next awaiting in the logical queue. Something along the lines of `send(-1)`. Then, instead of blocking while waiting to insert a thing into the next step in the pipeline, create a new fork join task that will re-attempt insertion and will call `send()` on the next task if successful. If not successful, the new task would schedule another task to retry, and so on.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.