-
Sam
Does anyone else implement in-band bytestreams (or related transfer mechanisms that use it) with a buffer? When the buffer is full do you send back a resource-constraint error of type wait or similar? If so, does anything else understand that or does it just cancel the connection as soon as you do because it saw an error?
-
Sam
(using IQ stanzas, I mean, I guess with message stanzas you can't really do this in a reasonable way)
-
Zash
.... message receipts
-
Sam
I guess you could send message receipts if an error wasn't generated, but now you might as well just use IQs.
-
Zash
Maybe using IQs is better
-
Zash
Or suffer some TCP over TCP pains?
-
Sam
In general I think it is (and the spec says as much). I'm not sure if it actually provides a way to apply back pressure though or if other users would just interpret this error as "stream closed" instead of "try again in a bit", the spec doesn't really define a way to control the transmission rate
-
jonas’
you could delay your IQ response
-
jonas’
implementations adhering to: > The sender of a data chunk need not wait for these acknowledgements before sending further stanzas. However, it is RECOMMENDED that the sender does wait in order to minimize the potential for rate-limiting penalties or throttling. will then rate-limit themselves
-
jonas’
if they don't, you can throw a resource-constraint error in their face, they deserve it then
-
Zash
Do TCP window stuff?
-
jonas’
optimizing IBB seems a bit weird anyway
-
Zash
Hm, indeed. Servers probably won't like it if you try for maximum throughput.
-
Sam
Delayed response is a good idea. I'd be worried about timeouts though
-
Sam
I'm not going for maximum throughput so much as not allowing unlimited buffer growth