Distributed Recoverable Sketches (Extended Version)
Diana Cohen, Roy Friedman, Rana Shahout
TL;DR
This work introduces a distributed framework for recoverable sketches in networked environments, enabling recovery after node crashes by combining data-node CMS sketches with redundancy stored in dedicated or distributed redundant nodes. It leverages RAID-inspired, erasure-like sum-sketches and sketch partitioning, along with batch-based updates and multiple representations (Buffer of Items, Buffers of Counters, Hash Tables, and Difference Matrices) via a pluggable API. The analysis and evaluation compare space, computation, and communication trade-offs across representations and partitioning schemes, providing practical guidance on when to favor incremental updates, compact hash tables, or full sharing. The approach offers tunable resilience (tolerating up to $f$ erasures) with configurable mappings and batch sizes, aiming to lower recovery traffic while maintaining accurate frequency estimates for heavy hitters in real-world traffic traces.
Abstract
Sketches are commonly used in computer systems and network monitoring tools to provide efficient query executions while maintaining a compact data representation. Switches and routers maintain sketches to track statistical characteristics of network traffic. The availability of such data is essential for the network analysis as a whole. Consequently, being able to recover sketches is critical after a switch crash. In this work, we explore how nodes in a network environment can cooperate to recover sketch data whenever any subset of them crashes. In particular, we focus on frequency estimation linear sketches, such as the Count-Min Sketch. We consider various approaches to ensure data reliability and explore the trade-offs between space consumption, runtime overheads, and traffic during recovery, which we point out as design guidelines. Besides different aspects of efficacy, we design a modular system for ease of maintenance and further scaling. A key aspect we examine is how the nodes update each other regarding their sketch content as it evolves over time. In particular, we compare periodic full updates vs incremental updates. We also examine several data structures to economically represent and encode a batch of latest changes. Our framework is generic, and other data structures can be plugged-in via an abstract API as long as they implement the corresponding API methods.
