mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
fec87e3ada
* 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> |
||
---|---|---|
.. | ||
bufferedwriter | ||
clusternative | ||
deployment | ||
graphite | ||
graphiteql | ||
multiarch | ||
netstorage | ||
prometheus | ||
promql | ||
querystats | ||
searchutils | ||
static/css | ||
vmui | ||
main.go | ||
Makefile | ||
README.md | ||
vmui.go |
vmselect
performs the following tasks:
-
Splits incoming selects to tasks for
vmstorage
nodes and issues these tasks to all thevmstorage
nodes in the cluster. -
Merges responses from all the
vmstorage
nodes and returns a single response.
The vmui
directory contains static contents built from app/vmui package with make vmui-update
command. The vmui
page is available at http://<vmselect>:8481/select/<accountID>/vmui/
.