{'fraction_non_alphanumeric': 0.018069634200088145, 'fraction_numerical': 0.0, 'mean_word_length': 5.085790884718499, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Query processing in firm real-time database systems

In recent years, a demand for real-time systems that can manipulate large amounts of shared data has led to the emergence of real-time database systems (RTDBS) as a research area. The basic mechanism that all real-time systems employ to enable jobs to meet their deadlines is priority scheduling. The adoption of priority scheduling requires changes in the ways that traditional database systems service their jobs. In this thesis, we propose and evaluate techniques to allow queries to execute efficiently in priority scheduling environments such as those envisioned for RTDBSs. 
One of the key system resources for processing queries efficiently is memory. To maximize the effectiveness of priority scheduling, it must be possible for running low-priority queries to relinquish buffers for use by higher-priority queries that just arrived at the system. In addition, when these higher-priority queries leave the system, freeing up memory, it would help the low-priority queries if they could regain their memory for the remainder of their execution. Due to their heavy reliance on main memory, queries performing hash joins and external sorts are especially vulnerable to fluctuations in their memory allocations. The first part of this thesis focuses on the design and evaluation of memory-adaptive query primitives that allow hash joins and external sorts to execute efficiently in the face of memory fluctuations. 
With the query primitives in place, the second part of the thesis is devoted to addressing higher-level query scheduling issues. An algorithm is proposed that dynamically controls the multiprogramming level and the memory allocation strategy for queries in an RTDBS to balance the demands on its memory, CPUs, and disks. Through a series of simulation experiments, this algorithm is shown to perform well over a wide range of workloads, but to be biased when presented with a multiclass workload. The algorithm is then augmented with a class-priority adaptation mechanism. The augmented algorithm strives not only to minimize the number of missed deadlines, but also to distribute any missed deadlines among all query classes according to a set of administratively-defined performance objectives.