Hi,
I am trying to setup an rpc server in order to integrate it into my custom 
publisher-subscriber library. For this I need a flow control mechanism that 
doesn't depend on individual streams but on a global disk writing speed. 
That is: The flow limit should adapt to the in-flight-bytes of the disk IO. 
Moreover, if the flow limit is exceeded the rpc server should effectively 
stop reading packets from client sockets, pushing the backpressure logic to 
TCP. This should prevent memory overhead for the broker when a publisher 
tries to flood the server. 
I saw that there is flow control logic implemented in capnp but wonder how 
it actually operates? The header-documentation of *RPCSystem *says that 
"the RpcSystem will not read further messages from the stream" but does 
this imply that these overflow messages will reside in the sockets buffer 
and don't get transferred to the receivers memory? And how is backpressure 
implemented then? 
If the default flow control logic does not fit my use case, I guess I have 
to setup a custom event loop that stops polling from sockets fds when the 
disk flow limit is exceeded. 
It would be really helpful if you could share some of your knowledge.
Thanks in advance

-- 
You received this message because you are subscribed to the Google Groups 
"Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to capnproto+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/capnproto/7f0cd6f2-f5a6-4b30-a7ac-78ca1fc33af3n%40googlegroups.com.

Reply via email to