|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: iSCSI: Flow ControlDavid, Suppose we have many TCP connections using the symmetric model and suppose that one of the commands is delayed because some packet was dropped. Suppose further that we want to maintain order of delivery (using the command reference numbers). Commands arrive on the other TCP connections and fill up the command queue while we are waiting for the missing comand. (Without using Pierre's suggestion) we don't know on which TCP connection the missing command will arrive, so we have to keep reading commands from the TCP connections in order to get to the missing command. Note that we only have to read a single command from each TCP connection until we find the missing command. - Kalman Meth David Robinson <David.Robinson@EBay.Sun.COM> on 21/09/2000 01:56:28 Please respond to David Robinson <David.Robinson@EBay.Sun.COM> To: ips@ece.cmu.edu cc: (bcc: Kalman Meth/Haifa/IBM) Subject: Re: iSCSI: Flow Control > > However, some have wanted to use the sliding window to solve a different > > problem. They want to enable the target to advertise to the initiator how > > many commands the target is able to receive. This apparently is not specified > > in SAM-2, and SAM-2 deals with overflowing the command queue in an ugly way - > > throw the commands away and enter an error state. > > > > The question here is whether iSCSI should attempt to solve the command queue > > overflow problem, or allow T10 to deal with it. Other protocols (fibre > > channel) already deal with it in the "ugly" fashion - perhaps so should > > iSCSI. What we need consensus on is whether or not iSCSI is going to deal > > with this. FC has a command queue overflow problem because it is a datagram protocol and cannot at the transport layer finely control the sender. But with a reliable stream protocol I don't understand how you could ever get a command queue overflow. If you command queue is full you simply stop reading from the TCP stream which will eventually cause the TCP input buffers to fill and the window to shrink to zero causing flow to stop. Short of a naive implementation that reads the TCP stream (thus keeping the window open) with no place to put the command it just read, I still don't see the problem. -David
Home Last updated: Tue Sep 04 01:07:08 2001 6315 messages in chronological order |