by Antoni Wolski
RAPID is a database management software which addresses special requirements of industrial process management systems. In such systems, vast amounts of sensor data need to be collected promptly and made available for processing by time-critical applications. Examples include control room applications of complex industrial processes (e.g. a paper mill operation), applications for remote operation control (e.g. of energy utilities), and various quality control and integrated manufacturing systems.
The requirements have led to the development of an active, main-memory-based, temporal database server and the associated database access software. The RAPID project was carried out at VTT Information Technology in Espoo, Finland, during 1992 - 1995, and was financed from Finnish national sources.
Challenges and main innovations
A high data assimilation rate is a major challenge. It may be as high as thousands of insert transactions per second (e.g. in a power plant). Appropriate main-memory-based data structures have been designed, and data insertion processing have been optimised.
The requirement for fast response with queries on large data sets has led to the development of an efficient in-memory indexing technique. As the data is in the form of measurement series, the temporal characteristic of data needs attention too. In RAPID, time-based queries are very efficient and various time-based predicates are supported. Temporal joins of measurement data tables are possible, whereby data from different sources are joined based on their valid time, i.e. the time period within which a given measurement value is true.
There has been a strong desire that a database system of this kind could actively control the applications (such as console displays, alarm handlers, etc. ) built around it. As a result, the RAPID server is an active database system beyond what is offered by typical implementations. RAPID database triggers may be fired by composite events defined over the history of data and they may invoke external actions (arbitrary programs) in various components of the application system. An example of a composite event trigger is the timer trigger illustrated in the adjacent figure. A timer trigger is fired at time t2 = t1 + delay, if an event at time t1 satisfied the timer starting condition, and no event satisfying the timer clearing condition has occurred in the mean time.
A contemporary database interface has been developed, including the RAPID Query Language (RQL) being a subset of the SQL language extended with temporal and active characteristics, and a C++-based programming interface based on the upcoming ISO/IEC SQL CLI standard. A part of the interface dealing with processing of trigger-originated action requests is unique as no standards have been proposed in the area. A TCP/IP-based RAPID protocol facilitates data exchange between the interface libraries and the RAPID server
A need to backup and archive main-memory based data has led to several parallel solutions. Automatic checkpointing takes care of making backup database copies on disk. Load and dump facilities enable for user-controlled data transfer to and from disk. And, finally, automatic archiving objects may be defined in the database to take care of periodical archiving of the RAPID database tables into an external disk-based database. RAPID, however, does not provide transaction-level durability because, for performance reasons, it was decided not to implement a (transaction) redo log. The undo log is implemented, and the command-level atomicity is supported. An RQL command is also the isolation unit, which means that multi-command transactions are not supported.
RAPID software architecture The RAPID system is composed of a RAPID server which runs as a stand-alone process, and class libraries which are linkable to application processes. Application processes may act as database clients sending database requests to the server, or as action handler processes executing the trigger-originated action requests, or may combine the two functions. The system operates in an TCP/IP network, also in a mixed-platform environment. The platforms supported at the moment are HP UNIX, Windows NT and Windows 95.
Future plans The research in database technology for industrial environments will continue at VTT Information Technology. Both the temporal and active characteristics need to be further developed, including a general-purpose language and mechanism for defining composite events. Also, fault-tolerant and recovery capabilities need improvement to satisfy reliability requirements of some environments. More information about RAPID is available on the World Wide Web at URL: http://www.vtt.fi/tte/projects/rapid