|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Status summary on multiple connectionsDavid Robinson wrote: > > > I am left with the following impression as to what was indicated here: > > - In general, command ordering is not relevant > > - If the initiator filesystem detects an ordering dependency, it will wait > > until outstanding commands are complete before issuing the dependant > > command. > > > > This may be a reasonable means of operation for the disk world. It is > > woefully inadequate for the tape world, as follows: > > - In general, command ordering is crucial - out of order command processing > > will lead to data corruption. > > - This would require the initiator backup application to block on completion > > of every single write command of a backup operation before issuing the next > > command. > > > > If this blocking were performed, both the throughput and capacity of a tape > > device/media would be negatively impacted by an order of magnitude or more. > > This would occur even assuming an instantaneous transport. > > I am hearing different stories on the issue of ordering. One side > is pushing hard for techniques that will allow out of order > execution using various RDMA techniques. This clearly states for > a certain class of devices (e.g. tapes) ordering is crucial. > I thought this problem was already solved at the SCSI layer > through the use of ordered commands which in general are not used > for disks but always used for tapes? Since FC will reorder this > has to be a solved problem. Would not an initiator talking to > a tape target simply set the ordering flag? > > Lastly, for a TCP based connection ordering can easily be made a > non-issue, simply don't try to process segments out of order. I > will defer to a transport expert, but I believe processing > TCP segments by an application out of order might cause problems. > In particular since the out of order segment is not ACKed until > after the missing segments arrive, they can be retransmitted > multiple times. SACK helps this but does not guarentee that > segments will not be retransmitted. So to process out of order > segments the application must maintain a list of which segments > have been processed as well, yuck! > David: If a TCP stack were to allow delivery out of order... and I don't see how it could since by definition it is a stream of bytes sent in order... it would have to keep track of the segments it has received and prevent duplicates from being propagated up to the application above. As you state, SACK helps, but it can NOT eliminate the duplicates that MAY show up. I think the TCP stack itself would HAVE to track all of this not the application... I really do NOT see how one can allow a TCP to deliver out of order though, oh I know technically how to do it, but it is a fundamental violation of what TCP is supposed to be delivering.... i.e. the bytes being transfered from 0 to N... R > -David > -- Randall R. Stewart randall@stewart.chicago.il.us or rrs@cisco.com 815-342-5222 (cell) 815-477-2127 (work)
Home Last updated: Tue Sep 04 01:06:55 2001 6315 messages in chronological order |