mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-11 14:53:49 +00:00
36da3faf73
* vmselect/promql: refactor `evalRollupNoIncrementalAggregate` to use lock-less approach for parallel workers computation Locking there is causing issues when running on highly multi-core system as it introduces lock contention during results merge. New implementation uses lock less approach to store results per workerID and merges final result in the end, this is expected to significantly reduce lock contention and CPU usage for systems with high number of cores. Related: #3966 Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> * vmselect/promql: add pooling for `timeseriesWithPadding` to reduce allocations Related: #3966 Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> * vmselect/promql: refactor `evalRollupFuncWithSubquery` to avoid using locks Uses same approach as `evalRollupNoIncrementalAggregate` to remove locking between workers and reduce lock contention. Related: #3966 Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> --------- Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> |
||
---|---|---|
.. | ||
active_queries.go | ||
aggr.go | ||
aggr_incremental.go | ||
aggr_incremental_test.go | ||
aggr_test.go | ||
binary_op.go | ||
eval.go | ||
eval_test.go | ||
exec.go | ||
exec_test.go | ||
memory_limiter.go | ||
memory_limiter_test.go | ||
parser.go | ||
rollup.go | ||
rollup_result_cache.go | ||
rollup_result_cache_test.go | ||
rollup_test.go | ||
rollup_timing_test.go | ||
timeseries.go | ||
timeseries_test.go | ||
transform.go | ||
transform_test.go | ||
tzdata.go |