C-Index/II Home Page
|CI2 Home|Literature|Support|Documentation|Y2K|Order|License|
Prev | Next

High Reliability

C-Index/II has undergone extensive reliability testing. It begins with careful coding and in-house testing. Then our customers put C-Index/II through their own quality assurance testing as a part of their development process. And finally, C-Index/II is in daily use by millions of end-users.

On the design side, we have enhanced the features of C-Index/II based on the requirements expressed by our customers. No two applications are alike in their data protection needs. C-Index/II includes a number of data reliability features for developers to choose from when building C-Index/II into an application.

PowerFail Protection

PowerFail Protection includes several active and passive features that can be used for protection from hardware and software failures. The application can control these features at runtime for optimal tailoring of data protection and performance.

Security Level 4

The simplest active PowerFail Protection feature is a way of setting the "Security Level" of C-Index/II data writes. Calling the csetfile function with "Security Level 4" tells C-Index/II that the application wants to be sure the database operations are completed without interruption.

When C-Index/II starts modifying a file, it sets a flag in the header indicating that the file is in the process of being modified. In the event of abnormal program interruption, this flag remains set and the next process to access the file will detect this failure, returning a WRITINTR error code. The application can then take appropriate action to fix the file. Security Level 4 also reduces the time from the first write to the last write (compared with the default, Security Level 3). This reduces the timeframe in which a failure will cause corruption.

Image Backup

The next level of active PowerFail Protection is Image Backup. This feature keeps a backup copy of each index node in a separate file as the file is being modified. In the event of a program failure (detected by Security Level 4), the application can perform an Image Restore operation to return the file to its condition before the operation started.

The application program can also group together several C-Index/II write operations using the functions strtwrit and endwrit. Using a combination of Security Level 4, Image Backup and strtwrit/endwrit together will provide bulletproof protection from abnormal program termination for most applications.

File Check Functions

Several functions are provided for checking the file for data integrity. The bcheck function tests the contents of an open file for corruption in the index structure. It is particularly useful for detecting problems caused by power failure. There is no limit on the size of file to be tested and it checks for a wide range of problems. A second check function, dcheck, checks for mismatches between indexes and records in the multi-key routines.

Running bcheck periodically will ensure that hidden file corruption will be detected before it causes greater harm to the data.

Rebuild Functions

The data structure of the C-Index/II file makes it possible to recover information from files which have become corrupted. Two functions are provided for rebuilding corrupted files. The bbuild function rebuilds the lower level aspects of the index file structure. Then the dbuild can be used to reconstruct the multi-key records and related index entries. This is all under program control and includes useful options for reporting progress on the rebuild via an application supplied callback function. The application can use this information to display a progress indicator on the screen.


C-Index/II Home Page