RoaringTagIndexBench

com.netflix.atlas.core.index.RoaringTagIndexBench

Check to see how query index performs with simple queries based on index size. With similar test with real data using 17k alert expressions that decomposed into over 33k query expressions, the index was around 1000x faster for processing a metrics payload of 5000 datapoints. The loop took around 6 seconds and the index took around 6ms. The real dataset is slower mostly due to more regex being used in real queries and not being used in this synthetic data.

> jmh:run -wi 10 -i 10 -f1 -t1 .*RoaringTagIndexBench.*

Results:

Benchmark                                Mode  Cnt         Score        Error  Units
RoaringTagIndexBench.create             thrpt   10        22.204 ±      0.907  ops/s
RoaringTagIndexBench.findKeysAll        thrpt   10  14053463.630 ± 656709.056  ops/s
RoaringTagIndexBench.findKeysQuery      thrpt   10      1323.195 ±     81.122  ops/s
RoaringTagIndexBench.findValuesAllMany  thrpt   10      4172.656 ±    305.764  ops/s
RoaringTagIndexBench.findValuesAllOne   thrpt   10    357671.851 ±  17709.502  ops/s

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

def create(bh: Blackhole): Unit
def findKeysAll(bh: Blackhole): Unit
def findKeysQuery(bh: Blackhole): Unit
def findValuesAllMany(bh: Blackhole): Unit
def findValuesAllOne(bh: Blackhole): Unit