Subject: iSCSI:Request/Response Ordering

From: "Sanjeev Bhagat \(TRIPACE/Zoetermeer\)" <[email-masked]>
Date: Sun, 30 Sep 2001 03:00:10 +0200

Hello All (T10, IPS),

The SAM-2 specifications makes no assumption about, or places any requirement on the ordering of requests or responses between tasks or task management functions received from different SCSI initiator ports.

In this scenario how can a SCSI target make correctly handle the read/write requests made on same blocks by different intiators at the same time.

Sanjeev

---

From: "John Hufferd" <[email-masked]>
Date: Sun, 30 Sep 2001 02:37:57 -0700

Sanjeev,
This is the purpose of Reserves.  Also, any application that performs this
type of operation to the very same device, from different systems, and has
not performed locking at the application level deserves what it gets.  If
the connections are from the same system, this is one of the purposes of
the Wedge Driver to coordinate I/O across different Connections.

Clustered Systems have had to deal with this for the last 35 years.  Shared
File Systems have a locking technique that spans the Cluster.  In Databases
they also have a locking technique that spans the Cluster.

.
.
.
John L. Hufferd
Senior Technical Staff Member (STSM)
IBM/SSG San Jose Ca
Main Office (408) 256-0403, Tie: 276-0403,  eFax: (408) 904-4688
Home Office (408) 997-6136
Internet address: [email-masked]

"Sanjeev Bhagat \(TRIPACE/Zoetermeer\)" <[email-masked]>
@ece.cmu.edu on 09/29/2001 06:00:10 PM

Sent by:  [email-masked]

To:   "'IPS Reflector'" <[email-masked]>, <[email-masked]>
cc:
Subject:  iSCSI:Request/Response Ordering

Hello All (T10, IPS),

The SAM-2 specifications makes no assumption about,  or places any
requirement on the ordering of requests or responses between tasks  or task
management functions received from different SCSI initiator  ports.

In this scenario how can a SCSI target make  correctly handle the
read/write requests made on same blocks by different  intiators at the same
time.

Sanjeev

---

From: "Edward A. Gardner" <[email-masked]>
Date: Sun, 30 Sep 2001 08:52:07 -0600

>Howevere i think that there should be some way in which write access to the
>target can be reserved for some initiators. ( i dont know if that already
>exists) or there should be some way of ordering of requests fos a target LU
>in task router/ task manager

I'm not certain what you're trying to get at.  There's the various forms of
reservation.  Persistent reservations have been particularly well thought
out for multi-initiator or cluster operation.

There are some inherent difficulties with asking a target to coordinate or
order writes.  From an initiator's perspective, a command is outstanding
while it is in flight to the target, while the target is queuing and
processing the command, and while status is in flight back to the initiator.
A target only has visibility to the middle part, it cannot do anything with
commands that are in flight.  For example, it does no good to require that
the target perform writes in order if they can become re-ordered while in
flight to the target.

This pretty well means that any coordination has to be done using extra
commands, not the write command itself.  The extra commands are equivalent
to a form of reserve and release.

There are some rather complex approaches that would let targets do such
things.  But it's tantamount to making targets active participants in
cluster lock managers.  Noone's wanted to pursue approaches with that level
of complexity (I think with good reason).

The accepted way to do shared access is that the hosts / initiators
coordinate everything using their lock manager.  At the target level
operations can be performed in whatever order is convenient.  A number of
vendors have built cluster software from such an approach.  It appears to
work well.

Edward A. Gardner               [email-masked]
Ophidian Designs                719 593-8866 voice
1262 Hofstead Terrace           719 593-8989 fax
Colorado Springs, CO  80907     719 210-7200 cell