com.netflix.atlas.core.index
Members list
Type members
Classlikes
Try different ways of performing batch update of index items.
Try different ways of performing batch update of index items.
> jmh:run -wi 10 -i 10 -f1 -t1 .*BatchRebuild.*
Results:
Benchmark Mode Cnt Score Error Units
hashMap thrpt 5 0.476 ± 0.063 ops/s
hashMapMerge thrpt 5 3.544 ± 0.111 ops/s
treeMap thrpt 5 1.358 ± 0.013 ops/s
treeMapMerge thrpt 5 2.000 ± 0.407 ops/s
Benchmark Mode Cnt Score Error Units
hashMap alloc 5 114854340.107 ± 112705.849 B/op
hashMapMerge alloc 5 33407504.311 ± 5704.459 B/op
treeMap alloc 5 88702403.314 ± 12202.989 B/op
treeMapMerge alloc 5 33457019.848 ± 39144.317 B/op
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
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.
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 -prof stack -prof gc -wi 10 -i 10 -f1 -t1 .*QueryIndexMatching.*
Initial results:
Benchmark Mode Cnt Score Error Units
QueryIndexMatching.index_100 thrpt 10 1427970.545 ± 42632.895 ops/s
QueryIndexMatching.index_1000 thrpt 10 1337580.661 ± 113418.137 ops/s
QueryIndexMatching.index_10000 thrpt 10 1341069.994 ± 104992.441 ops/s
QueryIndexMatching.index_100000 thrpt 10 1290159.738 ± 76488.013 ops/s
QueryIndexMatching.loop_100 thrpt 10 714393.977 ± 26067.308 ops/s
QueryIndexMatching.loop_1000 thrpt 10 68317.877 ± 6006.013 ops/s
QueryIndexMatching.loop_10000 thrpt 10 3831.356 ± 454.029 ops/s
QueryIndexMatching.loop_100000 thrpt 10 375.074 ± 30.352 ops/s
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
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.
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
- Supertypes
-
class Objecttrait Matchableclass Any