Skip to Main Content
Applications that require continuous processing of high-volume data streams have grown in prevalence and importance. These systems process streaming data in real-time and provide instantaneous response to support precise and ontime decisions. In such systems, it is difficult to know exactly how a particular result is generated or more particularly how to precisely trace stream events that caused a particular result. However, such information is extremely important for validating stream processing results. Therefore, it is crucial that stream processing systems have a mechanism for capturing and querying provenance information - the information pertaining to the process that produced result data - at the level of individual stream events, which we refer to as fine-grained provenance. In this paper, we propose a novel fine-grained provenance solution called Stream Ancestor Function - a reverse mapping function used to express precise dependencies between input and output stream elements. We demonstrate how to utilize stream ancestor functions by means of a stream provenance query and replay execution algorithm. Finally, we evaluate the stream ancestor function in terms of storage consumption for provenance collection and system throughput, demonstrating significant reductions in storage size and reasonable processing overheads.