VictoriaMetrics/lib
Roman Khavronenko 27b958ba8b
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-03-31 23:50:27 -07:00
..
appmetrics all: add ability to push internal metrics to remote storage system specified via -pushmetrics.url 2022-07-21 20:36:27 +03:00
auth app/vminsert: allows parsing tenant id from labels (#3009) 2022-09-30 18:35:53 +03:00
awsapi .golangci.yml: properly enable revive linter and fix all the warnings it detects 2023-02-26 12:18:59 -08:00
backup lib/storage: consistently use OS-independent separator in file paths 2023-03-25 14:33:58 -07:00
blockcache all: remove explicit "xxhash" name when importing github.com/cespare/xxhash/v2 package 2022-06-21 20:23:32 +03:00
bloomfilter lib/promscrape: add the ability to limit the number of unique series per each scrape target 2021-09-01 16:03:59 +03:00
buildinfo all: open-sourcing single-node version 2019-05-23 00:18:06 +03:00
bytesutil lib/bytesutil: add -internStringDisableCache and -internStringCacheExpireDuration command-line flags 2023-02-27 14:16:49 -08:00
cgroup all: use os.{Read|Write}File instead of ioutil.{Read|Write}File 2022-08-21 23:52:35 +03:00
decimal lib/decimal: use consistent randomizer in tests 2023-01-23 19:23:39 -08:00
encoding lib/encoding: make deterministic tests which rely on math/rand 2023-01-23 18:41:09 -08:00
envflag lib/envflag: small refactoring after 518c340ae3 and 02096e06d0 2022-10-29 02:28:58 +03:00
envtemplate allowed using dashes and dots in environment variables names (#4009) 2023-03-24 15:43:05 -07:00
fastnum Makefile: add build and test rules with enabled race detector. These rules have -race suffix 2020-03-05 12:03:38 +02:00
fasttime lib: extract common code for returning fast unix timestamp into lib/fasttime 2020-05-14 23:02:07 +03:00
filestream all: follow-up after 34634ec357 2023-03-25 11:57:39 -07:00
flagutil lib/flagutil: ArrayString: support commas inside quoted strings and inside [], {} and () braces 2023-03-28 21:22:55 -07:00
formatutil app/vmbackupmanager: add metrics for better observability (#488) 2022-12-20 14:18:06 -08:00
fs lib/fs: follow-up for ec45f1bc5f 2023-03-31 22:42:10 -07:00
htmlcomponents app/vmselect: remove dependency on lib/promscrape from app/vmselect 2023-01-03 23:28:27 -08:00
httpserver lib/httpserver: use github.com/klauspost/compress/gzhttp for compressing http responses 2023-02-27 10:33:43 -08:00
influxutils lib/flagutil: rename Array to ArrayString 2022-10-01 18:26:36 +03:00
ingestserver lib/netutil: init implimentation of proxy protocol (#3687) 2023-01-26 23:08:35 -08:00
leveledbytebufferpool all: make fmt via the upcoming Go1.19 2022-07-11 19:22:15 +03:00
logger add error handler for parsing prometheus text format to vmagent and v… (#3693) 2023-01-23 22:14:34 -08:00
lrucache all: remove explicit "xxhash" name when importing github.com/cespare/xxhash/v2 package 2022-06-21 20:23:32 +03:00
memory app,lib: fix typos in comments (#3804) 2023-02-13 13:27:13 +01:00
mergeset lib/storage: consistently use OS-independent separator in file paths 2023-03-25 14:33:58 -07:00
metricsql all: make fmt via the upcoming Go1.19 2022-07-11 19:22:15 +03:00
netutil lib/netutil: log only parsing errors for proxy-protocol (#3985) 2023-03-21 10:22:39 -07:00
persistentqueue lib/persistentqueue: typo fix after aea6df8197 2023-03-27 20:06:04 -07:00
procutil lib/procutil: stop immediately after receiving the second SIGINT or SIGTERM signal 2022-10-20 21:40:20 +03:00
promauth chore: Use http constants to replace numbers (#3846) 2023-02-22 18:53:05 -08: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 23:02:08 +02:00
prompbmarshal all: use %w instead of %s for wrapping errors in fmt.Errorf 2020-06-30 23:05:11 +03:00
promrelabel lib/promrelabel: make target url from labels on target relabel page (#3882) 2023-03-20 22:07:52 -07:00
promscrape lib/streamaggr: follow-up for ff72ca14b9 2023-03-31 22:30:38 -07:00
promutils app,lib: fix typos in comments (#3804) 2023-02-13 13:27:13 +01:00
protoparser fix some typo (#3898) 2023-03-03 11:02:13 +01:00
proxy lib/promauth: add ability to send additional http headers in requests to scrape targets 2022-06-22 20:39:43 +03:00
pushmetrics lib/flagutil: rename Array to ArrayString 2022-10-01 18:26:36 +03:00
querytracer lib/querytracer: fix remaining tests after 49ebc48809 2022-12-08 18:18:06 -08:00
regexutil app,lib: fix typos in comments (#3804) 2023-02-13 13:27:13 +01:00
snapshot app/vmbackup: prevent password leaks (#3672) 2023-01-18 11:35:21 -08:00
storage lib/storage: check for free disk space before opening tables (#4035) 2023-03-31 23:50:27 -07:00
streamaggr lib/streamaggr: follow-up for ff72ca14b9 2023-03-31 22:30:38 -07:00
syncwg all: open-sourcing single-node version 2019-05-23 00:18:06 +03:00
tenantmetrics app/vminsert: allows parsing tenant id from labels (#3009) 2022-09-30 18:35:53 +03:00
timerpool lib/timerpool: use timer pool in concurrency limiters 2019-05-28 17:20:10 +03:00
uint64set lib/uint64set: use repeatable randomizer in tests 2023-01-23 19:22:58 -08:00
workingsetcache lib/workingsetcache: expose -cacheExpireDuration command-line flag for fine-tuning of the cache expiration 2022-11-17 19:59:13 +02:00
writeconcurrencylimiter lib/writeconcurrencylimiter: initialize concurrencyLimitCh before exporting vm_concurrent_insert_capacity and vm_concurrent_insert_current metrics 2023-02-07 11:08:17 -08:00