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.