Constant-Time Sliding Window Framework with Reduced Memory Footprint and Efficient Bulk Evictions

Álvaro Villalba, Josep Ll. Berral, David Carrera

IEEE Transactions on Parallel and Distributed Systems · 2018 · 24 citations · 18 references

DOIFull text

Open access

Concepts

Abstract

The fast evolution of data analytics platforms has resulted in an increasing demand for real-time data stream processing. From Internet of Things applications to the monitoring of telemetry generated in large data centers, a common demand for currently emerging scenarios is the need to process vast amounts of data with low latencies, generally performing the analysis process as close to the data source as possible. Stream processing platforms are required to be malleable and absorb spikes generated by fluctuations of data generation rates. Data is usually produced as time series that have to be aggregated using multiple operators, being sliding windows one of the most common abstractions used to process data in real-time. To satisfy the above-mentioned demands, efficient stream processing techniques that aggregate data with minimal computational cost need to be developed. In this paper we present the Monoid Tree Aggregator general sliding window aggregation framework, which seamlessly combines the following features: amortized <inline-formula><tex-math notation="LaTeX">$O(1)$</tex-math></inline-formula> time complexity and a worst-case of <inline-formula><tex-math notation="LaTeX">$O(\log {n})$</tex-math></inline-formula> between insertions; it provides both a window aggregation mechanism and a window slide policy that are user programmable; the enforcement of the window sliding policy exhibits amortized <inline-formula><tex-math notation="LaTeX">$O(1)$</tex-math></inline-formula> computational cost for single evictions and supports bulk evictions with cost <inline-formula><tex-math notation="LaTeX">$O(\log {n})$</tex-math></inline-formula> ; and it requires a local memory space of <inline-formula><tex-math notation="LaTeX">$O(\log {n})$</tex-math></inline-formula> . The framework can compute aggregations over multiple data dimensions, and has been designed to support decoupling computation and data storage through the use of distributed <i>Key-Value Stores</i> to keep window elements and partial aggregations.

References

18