Litcius/Paper detail

Estimating Cardinality for Arbitrarily Large Data Stream With Improved Memory Efficiency

Qingjun Xiao, Shigang Chen, You Zhou, Junzhou Luo

2020IEEE/ACM Transactions on Networking36 citationsDOI

Abstract

Cardinality estimation is the task of determining the number of distinct elements (or the cardinality) in a data stream, under a stringent constraint that the input data stream can be scanned by just one single pass. This is a fundamental problem with many practical applications, such as traffic monitoring of high-speed networks and query optimization of Internet-scale database. To solve the problem, we propose an algorithm named HLL-TailCut, which implements the estimation standard error 1.0/√m using the memory units of four or three bits each, whose cost is much smaller than the five-bit memory units used by HyperLogLog, the best previously known cardinality estimator. This makes it possible to reduce the memory cost of HyperLogLog by 20%~45%. For example, when the target estimation error is 1.1%, state-of-the-art HyperLogLog needs 5.6 kilobytes memory. By contrast, our new algorithm only needs 3 kilobytes memory consumption for attaining the same accuracy. Additionally, our algorithm is able to support the estimation of very large stream cardinalities, even on the Tera and Peta scale.

Topics & Concepts

Cardinality (data modeling)Computer scienceEstimatorData streamConstraint (computer-aided design)Task (project management)AlgorithmScale (ratio)Parallel computingData miningMathematicsStatisticsGeometryEconomicsManagementPhysicsTelecommunicationsQuantum mechanicsAdvanced Database Systems and QueriesData Stream Mining TechniquesData Management and Algorithms
Estimating Cardinality for Arbitrarily Large Data Stream With Improved Memory Efficiency | Litcius