VictoriaMetrics/lib
Roman Khavronenko f42853275f
lib/storage: prevent excessive loops when storage is in RO (#2962)
* lib/storage: prevent excessive loops when storage is in RO

Returning nil error when storage is in RO mode results
into excessive loops and function calls which could
result into CPU exhaustion. Returning an err instead
will trigger delays in the for loop and save some resources.

Signed-off-by: hagen1778 <roman@victoriametrics.com>

* document the change

Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
2022-08-09 12:17:47 +03:00
..
appmetrics all: add ability to push internal metrics to remote storage system specified via -pushmetrics.url 2022-07-21 20:15:29 +03:00
auth lib/promscrape: follow-up after 2c553d5a2f 2022-08-08 14:49:16 +03:00
awsapi lib/promscrape/discovery/ec2: properly handle custom endpoint option in ec2_sd_configs 2022-08-05 18:52:37 +03:00
backup lib/backup/actions: rename removeLockFile -> removeRestoreLock to have consistent naming with createRestoreLock function 2022-08-04 17:43:24 +03:00
blockcache all: remove explicit "xxhash" name when importing github.com/cespare/xxhash/v2 package 2022-06-21 20:24:28 +03:00
bloomfilter lib/promscrape: add the ability to limit the number of unique series per each scrape target 2021-09-01 16:08:12 +03:00
buildinfo all: open-sourcing single-node version 2019-05-23 00:18:06 +03:00
bytesutil all: readability improvements for query traces 2022-06-30 18:19:43 +03:00
cgroup lib/cgroup: reduce the default GOGC value from 50% to 30% 2022-04-06 14:00:50 +03:00
consts app/vminsert: reduce the max packet size, which vminsert can send to vmstorage 2022-04-05 15:39:58 +03:00
decimal all: fix build issues and tests for Apple M1 2021-10-27 15:07:19 +03:00
encoding lib/encoding: explicitly set slice length passed to binary.BigEndian.Uint* 2022-04-12 12:56:52 +03:00
envflag lib/envflag: use flag.Set for setting the flags from env vars 2021-10-20 00:46:53 +03:00
envtemplate all: support %{ENV_VAR} placeholders in yaml configs in all the vm* components 2020-08-13 17:17:06 +03:00
fastnum Makefile: add build and test rules with enabled race detector. These rules have -race suffix 2020-03-05 12:05:16 +02:00
fasttime lib: extract common code for returning fast unix timestamp into lib/fasttime 2020-05-14 23:06:50 +03:00
filestream lib/fs: add vm_filestream_read_duration_seconds_total and vm_filestream_write_duration_seconds_total metrics 2021-12-02 09:13:20 +02:00
flagutil all: make fmt via the upcoming Go1.19 2022-07-11 19:23:25 +03:00
fs app: allow specifying http and https urls in the following command-line flags 2021-12-03 00:11:47 +02:00
handshake all: substitute zeroTime with time.Time{}, since this generates more optimal binary code 2022-02-07 14:36:41 +02:00
httpserver app/{vmselect,vmalert}: properly generate http redirects if -http.pathPrefix command-line flag is set 2022-08-02 13:01:13 +03:00
influxutils all: consistently return application/json content-type without charset=utf-8 2021-11-09 18:07:22 +02:00
ingestserver lib/httpserver: extract the code responsible for initializing server-side TLS config into netutil.GetServerTLSConfig 2022-03-17 19:46:20 +02:00
leveledbytebufferpool all: make fmt via the upcoming Go1.19 2022-07-11 19:23:25 +03:00
logger lib/logger: prettify logging the defined command-line flags 2022-08-07 22:58:41 +03:00
lrucache all: remove explicit "xxhash" name when importing github.com/cespare/xxhash/v2 package 2022-06-21 20:24:28 +03:00
memory lib/memory: export process_memory_limit_bytes metric, which shows the amounts of memory the current process has access to 2022-04-07 15:24:08 +03:00
mergeset lib/mergeset: cleanup after de6dd1cd5a 2022-08-04 18:34:38 +03:00
metricsql all: make fmt via the upcoming Go1.19 2022-07-11 19:23:25 +03:00
netutil lib/netutil: parallelize background pings for remote addresses 2022-06-21 13:32:27 +03:00
pacelimiter lib/pacelimiter: increase scalability for multi-CPU system 2020-08-06 18:33:07 +03:00
persistentqueue lib/bytesutil: split Resize* funcs to MayOverallocate and NoOverallocate for more fine-grained control over memory allocations 2022-02-01 11:20:20 +02:00
procutil all: add go:build lines for Go1.17 2021-07-26 15:50:46 +03:00
promauth vmalert: allow configuring custom headers per group (#2901) 2022-07-21 20:48:05 +03:00
prompb app/vminsert: moved -maxInsertRequestSize command-line flag out of lib/prompb in order to prevent its inclusion in vmselect and vmstorage apps 2020-01-28 22:53:50 +02:00
prompbmarshal all: use %w instead of %s for wrapping errors in fmt.Errorf 2020-06-30 23:33:46 +03:00
promrelabel lib/promrelabel: fix expected test result (#2957) 2022-08-08 13:48:14 +03:00
promscrape lib/promscrape: follow-up after 2c553d5a2f 2022-08-08 14:49:16 +03:00
promutils lib/promscrape: properly implement ScrapeConfig.clone() 2022-05-07 00:06:19 +03:00
protoparser all: make fmt via the upcoming Go1.19 2022-07-11 19:23:25 +03:00
proxy lib/promauth: add ability to send additional http headers in requests to scrape targets 2022-06-22 20:40:50 +03:00
pushmetrics lib/pushmetrics: make fmt 2022-07-26 20:41:23 +03:00
querytracer lib/querytracer: make it easier to use by passing trace context message to New and NewChild 2022-06-08 21:16:12 +03:00
snapshot {vmbackup, vmbackup/snapshot}: fixed problem with snapshot backup in another snapshot folder (#2535) 2022-05-04 22:12:48 +03:00
storage lib/storage: prevent excessive loops when storage is in RO (#2962) 2022-08-09 12:17:47 +03:00
storagepacelimiter lib/storage: remove prioritizing of merging small parts over merging big parts, since it doesn't work as expected 2020-07-30 20:02:22 +03:00
syncwg all: open-sourcing single-node version 2019-05-23 00:18:06 +03:00
tenantmetrics app/vmselect: export per-tenant stats on the number of requests and the cumulative request duration 2021-02-16 23:30:29 +02:00
timerpool lib/timerpool: use timer pool in concurrency limiters 2019-05-28 17:30:10 +03:00
uint64set Revert "lib/uint64set: allow reusing bucket16 structs inside uint64set.Set via uint64set.Release method" 2021-07-06 18:26:56 +03:00
vmselectapi lib/vmselectapi: pass storage.SearchQuery to API calls instead of []*storage.TagFilters + storage.TimeRange + maxMetrics 2022-07-06 12:46:22 +03:00
workingsetcache lib/workingsetcache: reuse prev cache after its reset 2022-04-05 20:39:44 +03:00
writeconcurrencylimiter fix: change thrashing typo (#2317) 2022-03-16 13:05:55 +02:00