-
Sub-task
-
Resolution: Done
-
Major
-
None
-
None
-
None
RESP endpoint already has back pressure built in.
It only allows a single request per client to be operated at once. This is done at https://github.com/infinispan/infinispan/blob/main/server/resp/src/main/java/org/infinispan/server/resp/BaseRespDecoder.java#L137
It also delays client operations if the client is not keeping up with reads. https://github.com/infinispan/infinispan/blob/main/server/resp/src/main/java/org/infinispan/server/resp/BaseRespDecoder.java#L125
The problem is neither of these work properly due to how ByteToMessageDecoder works in netty. If you disable auto read and do not add a value to the out buffer, it will keep reading. We need to change the decoder to actually publish a value to the out collection.