An object-oriented real-time database system for multiprocessors

Complex real-time systems need databases to support concurrent data access and provide well-defined interfaces between software modules. However, conventional database systems and prior real-time database systems do not provide the performance or predictability needed by high-speed, hard real-time applications. To address this need, we have designed, implemented, and evaluated an object-oriented software system called MDARTS (Multiprocessor Database Architecture for Real-Time Systems). MDARTS avoids the client-server overhead of most prior real-time database systems and object-oriented real-time systems by moving transaction execution into application tasks. By eliminating these sources of overhead and focusing on basic data management services for hard real-time systems (data sharing, serializable transactions, and multiprocessor support), our MDARTS prototype provides guaranteed transaction times approximately three orders of magnitude faster than prior real-time database systems. Another contribution of MDARTS is that it supports explicit declarations of real-time requirements and semantic constraints within application code. The MDARTS library examines these declarations at database object initialization time and attempts to construct objects that are compatible with the requirements. MDARTS supports both local shared-memory transactions and remote transactions that use remote procedure calls. Except for variations in transaction time guarantees, the locations and implementations of MDARTS objects are transparent to applications. MDARTS provides a C++ interface rather than a query language interface. Our MDARTS prototype runs on VME-based multiprocessors and Sun workstations, and we have used MDARTS to implement a controller for an actual manufacturing machine.

[1]  Krishnamurthy Vidyasankar,et al.  An Elegant 1-Writer Multireader Multivalued Atomic Register , 1989, Inf. Process. Lett..

[2]  Jeffrey F. Naughton,et al.  Multiprocessor Main Memory Transaction Processing , 1988, Proceedings [1988] International Symposium on Databases in Parallel and Distributed Systems.

[3]  Thomas E. Anderson,et al.  The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors , 1990, IEEE Trans. Parallel Distributed Syst..

[4]  Ingemar J. Cox,et al.  C++ language support for guaranteed initialization, safe termination and error recovery in robotics , 1988, Proceedings. 1988 IEEE International Conference on Robotics and Automation.

[5]  A. H. Skarra Concurrency control for cooperating transactions in an object-oriented database , 1988, OOPSLA/ECOOP '88.

[6]  Mukesh Singhal A fully-distributed approach to concurrency control in replicated database systems , 1988, Proceedings COMPSAC 88: The Twelfth Annual International Computer Software & Applications Conference.

[7]  Jacob Slonim,et al.  A service acquisition mechanism for the client/service model in Cygnus , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[8]  Larry L. Peterson,et al.  The x-kernel: a platform for accessing internet resources , 1990, Computer.

[9]  Yoelle Maarek,et al.  Integrating Information Retrieval and Domain Specific Approaches for Browsing and Retrieval in Object-Oriented Class Libraries , 1991, OOPSLA.

[10]  Hideyuki Tokuda,et al.  An object-oriented real-time programming language , 1992, Computer.

[11]  Henry M. Levy,et al.  High-performance cross-address space communication , 1990 .

[12]  John A. Stankovic,et al.  On real-time transactions , 1988, SGMD.

[13]  J. W. S. Liu,et al.  Monotonically improving approximate answers to relational algebra queries , 1989, [1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference.

[14]  Travis S. Craig Queuing spin lock algorithms to support timing predictability , 1993, 1993 Proceedings Real-Time Systems Symposium.

[15]  Bjarne Stroustrup,et al.  The C++ Programming Language, Second Edition , 1991 .

[16]  K.-J. Lin,et al.  Consistency issues in real-time database systems , 1989, [1989] Proceedings of the Twenty-Second Annual Hawaii International Conference on System Sciences. Volume II: Software Track.

[17]  John Shirley,et al.  Guide to Writing DCE Applications , 1992 .

[18]  Lui Sha,et al.  Real-time synchronization protocols for multiprocessors , 1988, Proceedings. Real-Time Systems Symposium.

[19]  P. E. Osmon,et al.  A methodology for real-time database system construction , 1991, RTSS 1991.

[20]  Sheng Cheng,et al.  Scheduling algorithms for hard real-time systems: a brief survey , 1989 .

[21]  Lui Sha,et al.  Modular Concurrency Control and Failure Recovery , 1988, IEEE Trans. Computers.

[22]  Hector Garcia-Molina,et al.  Main Memory Database Systems: An Overview , 1992, IEEE Trans. Knowl. Data Eng..

[23]  ShaLui,et al.  Concurrency control for distributed real-time databases , 1988 .

[24]  Karsten Schwan,et al.  CHAOS-Kernel Support for Objects in the Real-Time Domain , 1987, IEEE Transactions on Computers.

[25]  Maurice Herlihy,et al.  Inheritance of synchronization and recovery properties in Avalon/C++ , 1988, Computer.

[26]  Paul W. P. J. Grefen,et al.  PRISMA/DB: A Parallel Main Memory Relational DBMS , 1992, IEEE Trans. Knowl. Data Eng..

[27]  Lisa Cingiser DiPippo,et al.  Object-based semantic real-time concurrency control , 1993, 1993 Proceedings Real-Time Systems Symposium.

[28]  Jay K. Strosnider,et al.  ENHANCED APERIODIC RESPONSIVENESS IN HARD REAL-TIME ENVIRONMENTS. , 1987, RTSS 1987.

[29]  Randall B. Smith,et al.  SELF: The power of simplicity , 1987, OOPSLA '87.

[30]  K. J. Lin,et al.  Scheduling jobs with temporal consistency constraints , 1989 .

[31]  William E. Weihl,et al.  Implementation of resilient, atomic data types , 1985, TOPL.

[32]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[33]  Ramez Elmasri,et al.  Fundamentals of Database Systems , 1989 .

[34]  Stanley B. Zdonik,et al.  Concurrency Control and Object-Oriented Databases , 1989, Object-Oriented Concepts, Databases, and Applications.

[35]  Rebecca Wirfs-Brock,et al.  Designing object-oriented software , 1990 .

[36]  William E. Weihl,et al.  Commutativity-based concurrency control for abstract data types , 1988, [1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track.

[37]  Karsten Schwan,et al.  CHAOS: why one cannot have only an operating system for real-time applications , 1989, OPSR.

[38]  Jaideep Srivastava,et al.  Enhancing real-time DBMS performance with multiversion data and priority based disk scheduling , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[39]  J.A. Stankovic,et al.  Misconceptions about real-time computing: a serious problem for next-generation systems , 1988, Computer.

[40]  Ammar Attoui,et al.  An object oriented model for parallel and reactive systems , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[41]  Lui Sha,et al.  Concurrency control for distributed real-time databases , 1988, SGMD.

[42]  Satish K. Tripathi,et al.  Language support for the Maruti real-time system , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[43]  Hector Garcia-Molina,et al.  Scheduling real-time transactions , 1988, SGMD.

[44]  Rebecca Wirfs-Brock,et al.  Object-oriented design: a responsibility-driven approach , 1989, OOPSLA '89.

[45]  Kwei-Jay Lin,et al.  Enhancing availability in distributed real-time databases , 1988, SGMD.

[46]  Özgür Ulusoy,et al.  Real-time lock-based concurrency control in distributed database systems , 1992, [1992] Proceedings of the 12th International Conference on Distributed Computing Systems.

[47]  Calton Pu,et al.  A Formal Characterization of Epsilon Serializability , 1995, IEEE Trans. Knowl. Data Eng..

[48]  Sang Hyuk Son Semantic information and consistency in distributed realtime systems , 1988 .

[49]  James W. Layland,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[50]  Xiaohui Song,et al.  Performance of multiversion concurrency control algorithms in maintaining temporal consistency , 1990, Proceedings., Fourteenth Annual International Computer Software and Applications Conference.

[51]  Jane W.-S. Liu,et al.  Imprecise Results: Utilizing Partial Comptuations in Real-Time Systems , 1987, RTSS.

[52]  Ragunathan Rajkumar,et al.  Synchronization in Real-Time Systems: A Priority Inheritance Approach , 1991 .

[53]  Marc H. Graham How to get serializability for real-time transactions without having to pay for it , 1993, 1993 Proceedings Real-Time Systems Symposium.

[54]  Donald F. Towsley,et al.  Experimental Evaluation of Real-Time Optimistic Concurrency Control Schemes , 1991, VLDB.

[55]  R. Rajkumar Real-time synchronization protocols for shared memory multiprocessors , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[56]  Ingemar J. Cox,et al.  Real-time software for robotics , 1988, AT&T Technical Journal.

[57]  Mukesh Singhal,et al.  Issues and approaches to design of real-time database systems , 1988, SGMD.

[58]  Sang Hyuk Son Recovery in main memory database systems for engineering design applications , 1989 .

[59]  Lui Sha,et al.  Priority Inheritance Protocols: An Approach to Real-Time Synchronization , 1990, IEEE Trans. Computers.

[60]  Luis-Felipe Cabrera,et al.  An Evaluation of Starburst's Memory Resident Storage Component , 1992, IEEE Trans. Knowl. Data Eng..

[61]  B. R. Badrinath,et al.  Semantics-based concurrency control: Beyond commutativity , 1987, 1987 IEEE Third International Conference on Data Engineering.

[62]  John Bloomer,et al.  Power Programming with RPC , 1992 .

[63]  Hideyuki Tokuda,et al.  ARTS: a distributed real-time kernel , 1989, OPSR.

[64]  Karsten Schwan,et al.  Data base design for real-time adaptations , 1992, J. Syst. Softw..

[65]  Satish K. Tripathi,et al.  The MARUTI hard real-time operating system , 1989, OPSR.

[66]  B. R. Badrinath,et al.  Synchronizing Transactions on Objects , 1988, IEEE Trans. Computers.

[67]  Peiyi Tang,et al.  A parallel linked list for shared-memory multiprocessors , 1989, [1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference.

[68]  Umeshwar Dayal,et al.  Time-critical database scheduling: a framework for integrating real-time scheduling and concurrency control , 1989, [1989] Proceedings. Fifth International Conference on Data Engineering.

[69]  Theodore P. Baker,et al.  A stack-based resource allocation policy for realtime processes , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[70]  Kang G. Shin,et al.  Design of a Communication Subsystem for HARTS , 1991 .

[71]  Sang Hyuk Son,et al.  Using dynamic adjustment of serialization order for real-time database systems , 1993, 1993 Proceedings Real-Time Systems Symposium.

[72]  Miron Livny,et al.  Priority in DBMS Resource Scheduling , 1989, VLDB.

[73]  Jochen Liedtke,et al.  Improving IPC by kernel design , 1994, SOSP '93.

[74]  L. DiPippo,et al.  Real-Time Databases , 1995 .

[75]  Brian W. Kernighan,et al.  The C Programming Language, Second Edition , 1988 .

[76]  Aloysius Ka-Lau Mok,et al.  Fundamental design problems of distributed systems for the hard-real-time environment , 1983 .

[77]  Tei-Wei Kuo,et al.  SSP: A semantics-based protocol for real-time data access , 1993, 1993 Proceedings Real-Time Systems Symposium.

[78]  Shojiro Nishio,et al.  A time-out based resilient token transfer algorithm for mutual exclusion in computer networks , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.