Graduate Students: Sushil Birla, Lei Zhou, and Dave Ong
Faculty: Kang G. Shin
Sponsor: NSF
As real-time systems become more complex, and the volume of data being handled increases, it is desirable to use a database system to manage data accessed by the software processes. For example, in a manufacturing system, a database may store specifications for parts, specific programs, machine characteristics, control equation gains for machine axes, histories of performance data, and current states for the machines. If such information is in a globally accessible database, it can be used to support both low-level servo control, and high-level supervisory control, of the manufacturing workcells. Furthermore, it is easier to integrate new sensors and software modules because their interactions with the controller can be defined in terms of operations on the database.
One important obstacle to using database technology in domains such as manufacturing system controllers is that conventional database systems do not provide the performance levels or response time guarantees needed for hard real-time applications. Therefore, we are implementing a real-time database system called Multiprocessor Database Architecture for Real-Time Systems (MDARTS). MDARTS consists of a distributed object manager and an object-oriented library of database service classes. Real-time tasks needing to share data with other tasks declare objects belonging to the MDARTS data-base classes. These objects are automatically registered with the MDARTS Shared Data Manager that performs object look-up, allocates shared memory, and supports remote data access via remote procedure call. MDARTS supports explicit declarations of real-time requirements and semantic constraints within the application code. MDARTS examines these declarations during object initialization and constructs objects that are consistent with the application requirements.
For maximum performance on shared-memory multiprocessors, MDARTS supports concurrent, direct, shared-memory data access. This implies the need to consider concurrency control and transaction management --- an established technique for the concurrent and fault-tolerant access of persistent data. While this technique has been successful in standard databases, its use in real-time databases may be substantially enhanced if temporal considerations are taken into account explicitly. That is, transactions should not only execute in a legal (i.e., logically correct) manner, but they should meet certain constraints with regard to their invocation and completion times. These logical and temporal constraints, typically, are application-dependent, and our research also addresses the issues for the management of transactions in the presence of such constraints.
Using a model that serves as a basis for the management of time-constrained transactions, the problems with respect to concurrency control for such transactions in centralized computing environments are being identified. The various possible solutions that may be derived from extant research results are being sought. Also, to handle time-constrained crises situations in the target applications, the issues that arise are being examined using appropriate approaches. The key difficulties in the management of parallel and distributed time-constrained transactions are being identified, and several approaches to alleviate the problems inherent in such environments are being sought. Also, the related issues in architecture, software-development, and timing, that are germane to this area of research, are being addressed.
Prior real-time database efforts either work only on uniprocessors, or use relatively slow inter-process communication for all transactions. In our initial effort itself, we seek to address these inadequacies. Therefore, MDARTS is designed to directly access shared memory in order to guarantee transaction speeds two to three orders of magnitude faster than prior real-time database systems for multiprocessors. We have implemented a prototype version of MDARTS in C++ on standard VME-based multiprocessors and are using it to control a multi-axis robotic mechanism. Eventually, we expect to incorporate changes as the real-time database system evolves. To facilitate the changes, we are examining the conceptual real-time database schema, the design of schema change operators, and prototypical efforts to incorporate the schema change framework.