mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2025-03-21 15:45:01 +00:00
![]() Previously the selected time series were split evenly among available CPU cores for further processing - e.g unpacking the data and applying the given rollup function to the unpacked data. Some time series could be processed slower than others. This could result in uneven work distribution among available CPU cores, e.g. some CPU cores could complete their work sooner than others. This could slow down query execution. The new algorithm allows stealing time series to process from other CPU cores when all the local work is done. This should reduce the maximum time needed for query execution (aka tail latency). The new algorithm should also scale better on systems with many CPU cores, since every CPU processes locally assigned time series without inter-CPU communications. The inter-CPU communications are used only when all the local work is finished and the pending work from other CPUs needs to be stealed. |
||
---|---|---|
.. | ||
bufferedwriter | ||
clusternative | ||
deployment | ||
graphite | ||
graphiteql | ||
multiarch | ||
netstorage | ||
prometheus | ||
promql | ||
querystats | ||
searchutils | ||
static/css | ||
vmui | ||
main.go | ||
Makefile | ||
README.md |
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/
.