Super PC-Kwik: Still the Safest, Fastest Disk Cache

PC-Kwik Corporation has always recognized that reliability is the most
important issue in designing a disk cache.  There are two options that
can make a disk cache faster, but can also increase the risk of data
loss: time-delayed writes and request sorting.	Super PC-Kwik, our disk
cache, offers both of these options, but not as a default configuration.
We strongly feel that a disk cache's default behavior should not increase
the risk of substantial data loss.

Time-delayed writes and request sorting are, however, automatically
activated by SMARTDrive, the Microsoft disk cache that's bundled with
DOS 6 and Window 3.1, as well as by most other commercially marketed caches.
Although Microsoft has sold millions of copies of DOS 6.0, we found it
interesting when reports of system failures, crashes, irretrievable data loss,
etc. were being linked to DOS 6.0.  And we found it particularly interesting
when InfoWorld started attributing some of these problems specifically to
SMARTDrive.

"Most of the problems eliminated were associated with something DOS 6.0
does that 5.0 didn't: automatic installation of the SMARTDrive disk cache
without notifying the user."
InfoWorld, May 10, 1993

"I strongly urge you to stop using SMARTDrive.  I believe that this is the
source of the 'after a few weeks' DoubleSpace corruption problem."
Steve Gibson, InfoWorld, May 10, 1993

Time-delayed writes and request sorting pose substantial risks:

1.	Time-delayed writes.  Users of PCs normally assume that when
DOS prompt is displayed and none of their disk lights is on, any disk
activity is complete.  Many users will further assume that it is
therefore safe to turn their computer off or to reboot.  When a disk cache
has time-delayed writes enabled, as is SMARTDrive's and other disk
caches' default setting, this is not a safe assumption.  In addition, there
is a chance of a power outage or system hang happening before the data
is safely written to the disk.

	The InfoWorld test lab encountered problems with SMARTDrive due to
time-delayed writes.  "Our cold reboot (equivalent to turning the power off)
before SMARTDrive's cache had finished flushing was pilot error.  But
SMARTDrive default to "lazy writes" and its immediate return of the DOS
prompt is a data loss waiting to happen for many users.  Although the
performance gain from delayed writes is substantial, the cache software that
competes with SMARTDrive can be configured so the user is not returned to the
DOS prompt before the cache is fully flushed.  SMARTDrive has no such
configuration option."  (Infoworld, May 3, 1993)

	Not only is Super PC-Kwik fully configurable as InfoWorld reported,
but Super PC-Kwik automatically synchronizes with the DOS prompt and does
not use time-delayed writes unless configured to do otherwise.	The user
does not have to worry about the cache not being fully flushed when
the DOS prompt appears.  Once the DOS prompt appears, all disk activity is
complete; the user is free to turn the computer off or reboot without the
risk of data loss or corruption.

2.	Request sorting.  This feature involves changing the time order
of writing sectors to the disk so sectors can be written in physical order.
Assuming that all writes are complete, there is no functional difference
between FIFO (first in, first out) processing and request sorting of writes
because all the data ends up on the disk in the originally intended locations.
But, if a hardware or software failure occurs during disk writing, the
ability to recover from the failure may be compromised.  A well-designed
database (or other) program takes great care in the order that its index
and data records are written.  This allows the program to recover from a
crash by eliminating questionable records, without compromising the
integrity of the database as a whole.  When a disk cache changes the time
order of writes, the assumptions made by the application are no longer true
and may prevent the application program from recovering from a crash.

	The DOS FAT and directory structures can be thought of as a special
type of database.  When DOS creates a file, it carefully postpones pointing
the new directory entry at the newly allocated disk clusters until the FAT
has been updated with the allocated clusters.  If a disk cache is used that
changes the order of events and a system crash occurs, the directory entry
may point to disk clusters that are marked as unallocated in the FAT.  If
the system continues to be used, these same clusters will be allocated to
another file, and cross-linked files will result.  Cross-linked files are
among the most difficult problems to correct because two files share the
same space on the disk.  One or both of the files will be corrupted with
no reliable technique for recovering the lost data.

Unlike SMARTDrive and other third party caches, Super PC-Kwik's standard
mode of operation is to immediately begin processing all write requests on a
strict FIFO basis.  Users who are knowledgeable about time-delayed writes and
request sorting can enable them and obtain additional performance, but only if
they choose to take that risk.

Super PC-Kwik does not risk users' data with time-delayed writes and request
sorting in its default mode.  Super PC-Kwik has always been reliable, safe,
and fast -- automatically.
