Title
Roaring Bitmaps: Implementation of an Optimized Software Library.
Abstract
Compressed bitmap indexes are used in systems such as Git or Oracle to accelerate queries. They represent sets and often support operations such as unions, intersections, differences, and symmetric differences. Several important systems such as Elasticsearch, Apache Spark, Netflix's Atlas, LinkedIn's Pivot, Metamarkets' Druid, Pilosa, Apache Hive, Apache Tez, Microsoft Visual Studio Team Services, and Apache Kylin rely on a specific type of compressed bitmap index called Roaring. We present an optimized software library written in C implementing Roaring bitmaps: CRoaring. It benefits from several algorithms designed for the single-instruction-multiple-data instructions available on commodity processors. In particular, we present vectorized algorithms to compute the intersection, union, difference, and symmetric difference between arrays. We benchmark the library against a wide range of competitive alternatives, identifying weaknesses and strengths in our software. Our work is available under a liberal open-source license.
Year
DOI
Venue
2018
10.1002/spe.2560
SOFTWARE-PRACTICE & EXPERIENCE
Keywords
DocType
Volume
bitmap indexes,database indexes,Jaccard index,SIMD instructions,vectorization
Journal
48.0
Issue
ISSN
Citations 
4.0
0038-0644
4
PageRank 
References 
Authors
0.43
26
7
Name
Order
Citations
PageRank
Daniel Lemire182152.14
Owen Kaser232524.02
Nathan Kurz3312.45
Luca Deri429232.98
Chris O'Hara540.43
François Saint-Jacques640.43
Gregory Ssi Yan Kai7141.00