SBC question about block coherency

Kevin D Butt kdbutt at
Mon Nov 14 09:32:28 PST 2011

Formatted message: <a href="">HTML-formatted message</a>

I have a question that seems obvious, but since I come from the tape world
and have not spent much time in the disk world I could be assuming
behaviors that I shouldn't.
In the tape world, if a logical block is overwritten, then the read of that
logical block cannot occur until after the write has been completed.  The
tape's command queue is essentially an ordered queue. In the disk world, as
I understand it, many commands can be processed in parallel, that is, the
queue is not necessarily an ordered queue.  So, I have a question about
what that parallel'ness means when the command arrives with a task type of
In the example of a WRITE being issued at the same time as a READ being
issued for the same LBA from multiple application clients (i.e., in
different task sets), what should be expected?
Option 1:
There is an inherent race condition so either the WRITE or the READ command
will arrive first and be processed as an atomic operation on the LBA, then
the other command will be processed on the LBA.  If the READ arrives first
the data that is read is the old data.	If the write arrives first the new
data is written and then the read reads the new data.
Option 2:
There is an inherent race condition so either the WRITE or the READ command
arrives first, but both commands are processed simultaneously and the READ
command returns data that contains partially old data and partially new
Kevin D. Butt
SCSI & Fibre Channel Architect, Tape Firmware
Data Protection & Retention
MS 6TYA, 9000 S. Rita Rd., Tucson, AZ 85744
Tel: 520-799-5280
Fax: 520-799-2723 (T/L:321)
Email address: kdbutt at

More information about the T10 mailing list