Real-time transaction processing: design, implementation, and performance evaluation
Jiandong Huang · Scholarworks (University of Massachusetts Amherst) · 1991
In addition to satisfying database consistency requirements, as in traditional database systems, real-time transaction processing systems must also satisfy timing constraints, such as deadlines associated with transactions. To meet timing constraints, transactions need to be well scheduled along the course of their execution. The scheduling process involves multiple functional components in an entire database system. It is further complicated by the extensive interactions among those components. In this dissertation, we take an integrated approach to study soft real-time database systems where data consistency needs to be guaranteed by the notion of serializability. We develop real-time algorithms for CPU scheduling, concurrency control, conflict resolution, deadlock resolution, transaction wakeup, transaction restart, and buffer management. We also investigate the interactions among the processing components and their combined effect on system performance. The goal is to maximize the number of transactions in meeting their deadlines, and also to maximize the total value that transactions impart to the database system. In order to evaluate the algorithms and to better understand the operational behavior of real-time database systems, we implement a real-time database testbed called RT-CARAT. Using the testbed, we conduct various experiments with a wide range of parameter settings and statistical validity. Our main experimental results show that in the integrated system, the CPU scheduling algorithm has the most significant impact in real-time transaction processing; that concurrency control and the associated conflict resolution schemes are the secondary, but still influential, factors; that optimistic concurrency control, compared with two-phase locking, performs better when integrated with priority-driven preemptive CPU scheduling, and further, the optimistic approach may not always outperform the two-phase locking scheme which takes transaction priority into account in resolving data access conflicts; that the basic priority inheritance should not be used in a real-time database that employs two-phase locking, but an extension we developed, called conditional priority inheritance, works quite well; and that the real-time buffer management, integrated with a recovery scheme, does not provide significant gain over typical buffer management techniques.