SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


    [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

    Re: iSCSI: CmdSN and Retry



    > I certainly understand the need of doing data/status recovery and the
    > argument of "local" recovery being simpler.  However, this comes with 
    > heavy cost of performance when pipelined design demands 100,000 IOs per 
    > second on a network with long delay.  For services and responses 
    > happening a few times per second, it is OK to hold on the resources 
    > until we are certain the ACK is returned.  However, in the example 
    > above, after completing command 1 if a target can't start command 2 
    > until the status for 1 is ACK'ed, the wait can
    > be 100 milliseconds on a network with long delay.  The wait make it
    > impossible to have large number of IOs in the pipeline. By mandating
    > data/status recovery in iSCSI, we change the pipelined command 
    > execution to interlock handshakes.  
    > As I have said in the previous email, an initiator
    > will never send an command which depends on the success of a previous
    > command.  This fact makes the pipeline execution in a target possible.
    
    YP,
    
    I agree with the above and have been saying the same thing in a seperate
    thread. (See : "Command Ordering Proposal"
    http://ips.pdl.cs.cmu.edu/mail/msg03171.html)
    
    (The corner cases stated simply point out issues with the SNs as they exist
    in the draft today.) The bigger question of why iSCSI is attempting to
    provide ordering when its peers do not is still un-answered.
    
    iSCSI is trying to enforce strict ordering which is not required due to the
    following reasons :
    
    1) Other SCSI Transport Protocols (FC, pSCSI) do not guarantee strict
    ordering across commands. 
    
    2) Most (All ?) operating system SCSI Stacks enforce ordering above the
    SCSI ULP and do not depend on the SCSI Stack to provide end-to-end
    ordering across commands. (The exception to this is ordering of commands
    followed by their aborts).
    
    3) In the absence of (1) & (2) above, applications cannot depend on SCSI
    transport protocols to provide strict end-to-end ordering across commands,
    since they are transport agnostic and do not wish to base ordering
    assumptions on the transport they operate on.  (i.e. appln code enforces
    ordering if it operates on FC and pSCSI and uses iSCSI ordering when it
    runs above iSCSI !)
    
    4) Error recovery scenarios needed to maintain ordering across transport
    errors, resource allocation errors, errors at the target, digest errors
    and format errors becomes extremely complex, stalls all pipelined
    operations and in some cases cannot resolve the out-of-order situation
    induced unless the target executes 1 command at a time and ONLY starts on
    the next command after a StatSN ACK for the previous one.
    
    5) Strict ordering results in performance penalties such as :
    a) non-concurrent command execution at the targets.
    b) stalled TCP connections in a session when a connection turns faulty.
    c) all commands need to be stalled and re-initiated on any I/O error in an
    attempt to maintain ordering.
    d) Flow Control mechanisms like QUEUE FULL error recovery will change to
    complete oscillating algorithms with the initiator completely stopping all
    further I/Os until order is restored in the sequence they were originally
    sent.
    
    6) Strict ordering is not required in the majority if not all cases, since
    most (all ?) O.S' do not enforce strict ordering or do anything 
    special in their error recovery to  maintain strict ordering.
    
    7) Several targets treat simple and ordered tags in a similar manner
    without differentiating and providing strict ordering for ordered tag
    commands.
    
    8) Majority of the I/O traffic (if not all) is simple tag commands and all
    this ordering and error recovery for ordering will impact performance when
    ordering was never required in the first place.
    
    9) The use of ordering within a SCSI stack is not prevalent. IN those few
    places where it is known to be in use, this is a static characteristic of
    that SCSI stack, and such stacks can use single-connection sessions to
    achive their ordering.
    
    IOW, the majority of stacks do NOT require strict ordering. Hence, iSCSI
    should optimize for this most common case and NOT penalize it. 
    
    > 
    > On a separate note, I really respect Santosh's fine-tooth analysis of the
    > iSCSI draft.  But, in his arguments the fact that SCSI has been functional
    > for the last 20 years was badly ignored.  
    
    YP, the corner cases simply bring out problems in the draft as they exist
    today. I have been consistently raising the bigger question about why
    iSCSI is attempting to differ from its peers in issues like ordering,
    overlapped data xfer's, etc. SCSI has been functioning over the last 20
    years without applns depending on SCSI stacks for strict ordering or
    deploying un-used features like overlapped data xfers. 
    
    Applns will continue NOT to depend on scsi transports for the above since
    they are written to be transport agnostic, and are based on lowest common
    denominator support. (i.e. assume no ordering from O.S SCSI Stack).
    
    > However, using StatSN to
    > mandate data/status retry pays a great performance price. 
    
    Agreed. 
    
    > Both overlapped
    > and out-of-order data transfers are allowed in SCSI (Check out the Modify
    > Data Pointer extended message).  SCSI works fine without mandating
    > non-overlapping transfers or data/status recovery.  
    
    The Modify Data Pointers needs to be explicitly enabled through Mode
    Select and I can't recollect seeing any instances of its usage.
    As for FCP, overlapped data xfer's are not allowed. period.
    
    Regards,
    Santosh
    
    -- 
    #################################
    Santosh Rao
    Software Design Engineer,
    HP, Cupertino.
    email : santoshr@cup.hp.com
    Phone : 408-447-3751
    #################################
    


Home

Last updated: Tue Sep 04 01:05:36 2001
6315 messages in chronological order