SCSI Toolbox :: Newsletter - July 2003
IN THIS EDITION
4.1 Release of the Toolbox (7/15/03)
Threaded Commands in DTB!
Ask Dr. SCSI - What's the deal with transfer rates anyway?
Did you know? - Repair DLT directory
4.1 STB Release
This will be in the STB v4.1 release which will be released on July 15.
- New "Tape Speed Test"
- New LTO tape cartridge display
- New Disk Manufacturing/Screening module - can format within test
sequence
- New Disk Manufacturing/Screening module - can change blocksize within
test sequence
- SWP & DTB - Fixed buffer mode bug in SetTapeBlocksize()
- SWP & DTB New - added GetBufferMode() function
- SWP & DTB New - added SetBufferMode() function
- SWP & DTB New - added MultiTasking CDB's
- DTB New - Visual C++ DTB library released
- Tape Performance Test - accuracy enhanced
- Fixed - SATA & ATA RAID crash issue
- Users Application Guide
MultiTasking Commands in DTB
What is a MultiTasking command?
It is a SCSI command that you issue to a device, and as soon as the command
is issued control is returned to your program. Your program can then issue
more commands - it doesn't have to wait for the first one to complete before
issuing more.
What makes this wonderful?
Consider our example test program - it simultaneously tests two tape drives
and the jukebox they are installed in. While one tape is rewinding the other
can be writing, while at the same time the jukebox can be moving a tape.
One test can check out multiple drives and a jukebox all at the same time!
And if one drive fails the tests on the other devices can go on and finish.
MultiTasking commands in DTB work like this:
- Issue the command - the function returns immediately with a Thread
ID (TID)
- To see what the command is doing you use the GetTIDStatus function.
This will tell you if the command is still pending, or if the command
is complete it will tell if it completed successfully or if it got an
error. Detailed error information as well as command completion time
is available for every TID.
- Once a TID is complete call the FreeTID function to release the system
resources.
Ask Dr. SCSI - What's the deal with transfer
rates anyway?
Q. What's the deal with transfer rates anyway?
A. Good question! I like to think about transfer rates
in two ways, "Real world" and "Theoretical".
Real world transfer rates are what you are going to see
in, you guessed it, the real world! For instance, if it takes one minute
to write 720MB of data to your disk drive, your "real world" transfer
rate is 12MB/sec. Or, if it takes 20 minutes to backup 3GB to your DVD
drive, you are seeing a "real world" transfer rate of about 2.5 MB/sec.
Real world numbers reflect the average amount of data transferred
over a given amount of time, and therefore take into account
all drive and system activities that occur between actual data transfers.
Theoretical transfer rates are almost always referring to the instantaneous
burst transfer rate when the device is in DATA IN or OUT phase.
These rates are almost always much higher than the real world rates. Why?
Because they are only measuring the transfer rate when data is
being transferred - they don't take into effect how often
these transfers can take place. With disk drives, head movement,
occasional recalibration, seeks needed to access spare blocks, rotational
latency, and cache misses can all contribute to put a significant amount
of time between data transfers. On tapes there can be repositioning due
to data underflow, retries and mapping of errors, rewinds - all sorts
of delays between actual data transfers.
"So" you ask, "where can I see these different transfer rates with the
SCSItoolbox?"
Basically, the numbers reported with DriveWatch are going to be burst
rate (theoretical) numbers - these are going to show the time
the actual read or write commands took to transfer their data. The numbers
shown in the Disk Read or Write Performance tests, or the are going to
be average-over-time (real world) rates.
Did you know? - Repair DLT directory
That DLT tapes keep a directory of the tape contents at the beginning
of the tape. This helps the drive perform seek and positioning commands
more efficiently. This directory is updated any time the tape is unloaded
from the drive. But what happens if you are writing data to the tape,
and lose power before unloading the tape? The tape directory gets corrupted
is what happens! But not to worry, just use the Repair DLT directory function
to fix it!
This function will tell you if the directory is corrupted, and if it is
it will fix it. Depending on how much data is on the tape, this function
can take a long time! But if your tape directory is corrupted, it’s worth
the wait!