VictoriaMetrics/lib
Roman Khavronenko 05dfcc3947
lib/storage: check for free disk space before opening tables (#4035)
* lib/storage: check for free disk space before opening tables

We check for free disk space before call to `openTable`,
so `Storage` can be set to ReadOnly before mergeWorkers start.

Before the change, there was a chance that merges will start
even if Storage has to start in ReadOnly mode because of
`-storage.minFreeDiskSpaceBytes` limit.

https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4023
Signed-off-by: hagen1778 <roman@victoriametrics.com>

* lib/storage: chore

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

* Update lib/storage/storage.go

---------

Signed-off-by: hagen1778 <roman@victoriametrics.com>
Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
2023-04-01 00:33:53 -07:00
..
auth all: use %w instead of %s for wrapping errors in fmt.Errorf 2020-06-30 23:33:46 +03:00
awsapi discover/ec2: bump API version (#3702) 2023-01-27 15:02:52 -08:00
backup adds restore.lock (#1988) 2021-12-22 13:10:56 +02: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 lib/flagutil/bytes.go: properly handle values bigger than 2GiB on 32-bit architectures 2023-01-10 19:36:23 -08:00
fs lib/fs: verify response code when reading configuration over HTTP (#4036) 2023-03-31 22:38:43 -07: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-08 15:43:02 +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 feat: rule limit (#2676) 2022-06-09 13:15:33 +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/flagutil/bytes.go: properly handle values bigger than 2GiB on 32-bit architectures 2023-01-10 19:36:23 -08:00
mergeset lib/mergeset: follow-up after a0e7432e42 (#3145) 2022-10-06 16:06:27 +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/flagutil/bytes.go: properly handle values bigger than 2GiB on 32-bit architectures 2023-01-10 19:36:23 -08:00
procutil all: add go:build lines for Go1.17 2021-07-26 15:50:46 +03:00
promauth lib/promauth: refactor NewConfig in order to improve maintainability 2022-07-04 14:31:43 +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 16:29:46 +03:00
promscrape lib/promscrape/discovery: missing changes after b4ad3a3b4c 2023-01-27 15:10:44 -08:00
promutils lib/promscrape: properly implement ScrapeConfig.clone() 2022-05-07 00:06:19 +03:00
protoparser fixed opentsdbListenAddr timestamp conversion (#3810) 2023-02-14 22:54:49 -08:00
proxy lib/promauth: add ability to send additional http headers in requests to scrape targets 2022-06-22 20:40:50 +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: check for free disk space before opening tables (#4035) 2023-04-01 00:33:53 -07: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: fixes regression for disable compression setting (#3932) 2023-03-12 03:01:45 -07: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