SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: Re: multiple connections



    I think Matt has an important point here. Let us consider READs
    and WRITEs seperately.
    
    1. READ - In this case the host software can post the appropriate
    read buffers to the connection on which the data is to be received
    and then post the read command to the connection on which the data
    is to be sent. By the time the target gets the command, and returns
    data, it is most likely that the NIC receiving the data will have
    accepted the read buffers.
    
       Although synchronization issues are minimized, there is a
    reasonable amount of performance impact. Two different "commands"
    (in the sense of host to adapter commands - not in the SCSI sense)
    have to be posted. Two different queues have to be written to (for
    sure if they are on different NICs) and two different NICs triggered
    to accept the "commands". Then there will be two different completion
    events that will be returned by the NICs to the host - one indicating
    the acceptance/"completion"/"return" of the command buffer (indicating
    command sent successfully), and the second when the data is all
    received (along with the SCSI command status). This may also require
    interrupt handling etc which could be minimized by some clever schemes.
    
    So the amount of work done by the host for the host/adapter interaction
    is close to doubled. There is probably not that much impact on the
    target in this case.
    
    2. WRITES - This is the really bad one in my opinion. For me, avoiding
    RTTs in iSCSI would just by itself make iSCSI a superior "transport"
    for SCSI. So assuming RTTs are not being used, the host would (changing
    the posting order from READs), first post the write command to the
    connection on which the data is to be sent, and then post the write
    buffers to the connection which is to be used for sending data.
    One case is where for whatever reason, the target gets the data before
    it gets the command, and has no clue what to do with the data.
    Let us assume that the target does get the command before it gets the
    data. The target gets a command indicating that data being written to 
    whatever lun and whatever location is going to arrive on some other
    connection. First the target has taken an extra event from the adapter.
    Then, when data arrives on another NIC (and the target gets another
    event), the target goes through the list of outstanding WRITE
    commands to match the command with the data and then go about the
    business of processing the data.
    
    So in this case the work has increased for the initiator as well as
    the target.
    
    Somesh
    
    
    > -----Original Message-----
    > From: matt_wakeley@agilent.com [mailto:matt_wakeley@agilent.com]
    > Sent: Wednesday, September 06, 2000 1:17 AM
    > To: ips@ece.cmu.edu
    > Subject: FW: Re: multiple connections
    > 
    > 
    > julian_satran@il.ibm.com wrote:
    > 
    > > Dear colleagues,
    > >
    > > With all the heated debate about multiple vs. single 
    > connection a request I
    > > made a while ago got no significant reply (neither for nor against).
    > >
    > > The request was to consider a proposal made by Kalman Meth 
    > to reconsider
    > > the asymmetric model with the addition of a path selection 
    > made by the
    > > initiator.
    > 
    > One downside I see to this proposal is that for a host with 
    > multiple iSCSI
    > nics, it will have to issue two commands (in this order): one 
    > to the "data path
    > nic" to describe where the data is to be read from/written 
    > to, and one to the
    > "control path nic" to send the command.  This would be 
    > communication to two
    > cards instead of one.  Also, note that the communication to 
    > the data path nic
    > MUST complete before the control path nic sends the command, 
    > requiring some
    > kind of sync mechanism.
    > 
    > 
    > > This proposal allows removing the command counters - as 
    > commands use a
    > > single TCP connection. The single connection can also be a shared
    > > data+control connection.
    > 
    > For the case of the command connection failure and fail-over to a new
    > connection, I don't see how you can get away from the command 
    > counters.  When a
    > fail over occurs, you will need some way of finding out what 
    > commands made it
    > to the target and which didn't.  The easiest way to do this 
    > is with command
    > numbering.
    > 
    > >
    > >
    > > In case of multiple connection the data path to be used is 
    > selected and
    > > maintained until the command ends.
    > >
    > > Thanks,
    > > Julo
    > 
    > -Matt Wakeley
    > Agilent Technologies
    > 
    
    


Home

Last updated: Tue Sep 04 01:07:31 2001
6315 messages in chronological order