Conversation
c70ff7d to
c6290ed
Compare
| - a call receive never returns control-stream or other-call traffic; | ||
| - a control receive never returns call traffic. | ||
|
|
||
| One consumer is expected for each call and for the control stream. Concurrent receives from different calls are |
There was a problem hiding this comment.
What is meant be "Concurrent receives from different calls" - there should be only one producer per context, or?
| ### Worker-side data flow control | ||
|
|
||
| The worker-side `Call::send()` path owns the outbound credit state for each call and data direction. A record-batch | ||
| send is allowed to block on the inbound queue because the worker must process `Next` messages before it can send more |
There was a problem hiding this comment.
What happens if there never is a "Next" message - will it block forever?
There was a problem hiding this comment.
this actual show another problem we cant stop to wait because, the split happens on the worker side, that we can add a block timeout we need to move the split into background thread. this has another consequence we need another mechanism to indicate send permission to the worker. the bg threads budget to the worker thread as long the worker thread still has budget it is allowed to send the current batch. the bg thread takes care splitting it using real remaining.
Summary
Validation