Versioning concurrency control for hard real-time systems
The problems of hard real-time systems scheduling involve not only guaranteeing schedulability but also ensuring that shared data will not be corrupted. Maintaining shared data consistency has long been studied in database systems. In this paper, we discuss the key differences between database concurrency control and concurrency control for hard real-time systems and describe an approach to adapting advanced concurrency control techniques to systems requiring analytic worst-case latency guarantees. We describe an example concurrency control technique which avoids interference between queries and updaters. The versioning technique can be implemented with simple and predictable low-overhead algorithms and data structures and its application to a task set is driven by the schedulability analysis. Performance evaluation results via case studies and simulation experiments are presented that show that the versioning technique can improve pure locking protocols in a variety of settings. In particular, when tasks are computation-intensive, the improvement made by the versioning technique in reducing worst-case blocking and increasing schedulability is most significant.