Data temporal consistency in hard real-time systems

This thesis studies the performance of concurrency control algorithms in maintaining temporal consistency of data in hard real-time systems. In our model, a hard real-time system consists of periodic tasks which are either sensor transactions, read-only transactions or update transactions. Such periodic transactions are typically scheduled by priority-driven, preemptive algorithms. Transactions may share data with each other, and concurrency control algorithms are used to ensure data integrity. Temporal consistency of data, defined in terms of age and dispersion of data, indicates whether the data read by real-time transactions is sufficiently up-to-date for the application. More precisely, data objects are inconsistent when their ages and dispersions are greater than the absolute and relative thresholds allowed by the application. Real-time transactions must read temporally consistent data in order to deliver correct results. Based on this model, we have evaluated the performance of two well-known classes of concurrency control algorithms that handle multiversion data: the two-phase locking and the optimistic algorithms, as well as the well-known priority-driven, preemptive scheduling algorithms: the rate-monotone and earliest-deadline-first algorithms. The effect of using the priority inheritance and stack-based protocols with lock-based concurrency control is also studied. Our simulation results indicate how well data temporal consistency is maintained for different workload characteristics. By avoiding undesirable parameters and choosing the appropriate algorithms, we can make it easier to maintain data temporal consistency in hard real-time systems.