Replies: 1 comment
-
|
Hey @igfasouza, Adaptive backpressure isn't a no. It's just that I've seen the failure modes up close and they're worse than the static-watermark behavior we have today. Heap-based throttling is the obvious one to want, and the obvious one to get wrong. CPU is worse. The good news: the proposal already fits. KPipe.json(topic, props)
.withBackpressure(new BackpressureController(HIGH, LOW, adaptiveStrategy(...)))
.toCustom(...)
.start();Different sites are going to want different signals anyway (G1 occupancy, RSS, cgroup The Pi angle from #146 is actually where this argument flips. Small heap, one dominant process, no noisy neighbors — the noise problems I just listed mostly go away. If someone prototypes Happy to leave this open for that. If anyone wants to start, copy the shape of |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
As a potential future enhancement, it may be worth exploring adaptive backpressure mechanisms driven by runtime resource utilization.
Currently, backpressure is typically configured using fixed thresholds. An alternative approach could be to dynamically adjust consumption rates according to the application's operational state, taking into account metrics such as:
With this model, consumers could automatically reduce throughput during periods of high memory pressure or elevated CPU utilization, and gradually increase throughput again as resources become available.
While this approach introduces additional complexity and may not align with Kpipe's current design goals, it could provide a more resilient and self-regulating system under varying workloads.
This is intended as an exploratory idea for future discussion, and it would be interesting to understand whether similar concepts have already been evaluated or considered within the project's roadmap.
It could also be an interesting experiment on resource-constrained hardware such as a Raspberry Pi, where CPU and memory limitations are more easily observable. Such an environment might provide a practical way to evaluate whether adaptive backpressure can improve stability and throughput under changing workloads.
Beta Was this translation helpful? Give feedback.
All reactions