{'fraction_non_alphanumeric': 0.02067751869775627, 'fraction_numerical': 0.0, 'mean_word_length': 4.968503937007874, '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}}
Modeling window execution semantics of stream processing engines

Data stream processing emerged a decade ago as a new data management paradigm with the increasing number of diverse data sources (e.g., sensors, online transactions and etc.) and low-latency processing requirement of the possibly infinite streaming data generated by these data sources. Many research projects have shown how data can be processed as it pours into a system from a diversity of sources. One of the common ideas has been to systematically divide the possibly infinite input stream into finite chunks, called windows, over which queries are executed on a continuous basis. Today, data stream processing is passing from the domain of pure research into the real world of commercial systems. There are no standards for querying streams yet; each system has its own semantics and syntax. For the purchaser or user of an Stream Processing Engine (SPE), the choices are confusing. Without a clear understanding of features and semantics, applications are not portable, and can be hard to build, even on a given SPE. The emerging SPEs have different capabilities, and even common capabilities may be expressed differently in different systems. Worse yet, the underlying semantics of such common features as windows is often radically different. For instance, even if we are able to specify the same window in different SPEs, we can get different query results due to hidden differences in their execution semantics. There are abstract models for streams and windows, but most of them are not associated with any existing system. While they are useful as guides to future SPE developers, they do little to help users understand existing SPEs, and even less for comparing or explaining the behaviors of different SPEs. This thesis takes up the challenge of understanding and modeling execution semantics of the existing SPEs focusing on timeand tuple-based windowing behaviors. First, we present SECRET, a model of the windowing behavior of SPEs. SECRET is a descriptive model that allows users to analyze the behavior of systems and understand the results of window-based queries (with timeand tuple-based windows) for a broad range of heterogeneous SPEs. The model is the result of extensive analysis