mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
7b33a27874
- Compare the actual free disk space to the value provided via -storage.minFreeDiskSpaceBytes directly inside the Storage.IsReadOnly(). This should work fast in most cases. This simplifies the logic at lib/storage. - Do not take into account -storage.minFreeDiskSpaceBytes during background merges, since it results in uncontrolled growth of small parts when the free disk space approaches -storage.minFreeDiskSpaceBytes. The background merge logic uses another mechanism for determining whether there is enough disk space for the merge - it reserves the needed disk space before the merge and releases it after the merge. This prevents from out of disk space errors during background merge. - Properly handle corner cases for flushing in-memory data to disk when the storage enters read-only mode. This is better than losing the in-memory data. - Return back Storage.MustAddRows() instead of Storage.AddRows(), since the only case when AddRows() can return error is when the storage is in read-only mode. This case must be handled by the caller by calling Storage.IsReadOnly() before adding rows to the storage. This simplifies the code a bit, since the caller of Storage.MustAddRows() shouldn't handle errors returned by Storage.AddRows(). - Properly store parsed logs to Storage if parts of the request contain invalid log lines. Previously the parsed logs could be lost in this case. Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4737 Updates https://github.com/VictoriaMetrics/VictoriaMetrics/pull/4945 |
||
---|---|---|
.. | ||
arena.go | ||
block.go | ||
block_data.go | ||
block_data_test.go | ||
block_header.go | ||
block_header_test.go | ||
block_search.go | ||
block_stream_merger.go | ||
block_stream_reader.go | ||
block_stream_writer.go | ||
block_test.go | ||
block_timing_test.go | ||
bloomfilter.go | ||
bloomfilter_test.go | ||
consts.go | ||
datadb.go | ||
datadb_test.go | ||
encoding.go | ||
encoding_test.go | ||
encoding_timing_test.go | ||
filenames.go | ||
filters.go | ||
filters_test.go | ||
hash128.go | ||
hash128_test.go | ||
hash128_timing_test.go | ||
index_block_header.go | ||
index_block_header_test.go | ||
indexdb.go | ||
indexdb_test.go | ||
inmemory_part.go | ||
inmemory_part_test.go | ||
inmemory_part_timing_test.go | ||
log_rows.go | ||
log_rows_timing_test.go | ||
parser.go | ||
parser_test.go | ||
part.go | ||
part_header.go | ||
part_header_test.go | ||
partition.go | ||
partition_test.go | ||
rows.go | ||
rows_test.go | ||
storage.go | ||
storage_search.go | ||
storage_search_test.go | ||
storage_test.go | ||
stream_filter.go | ||
stream_id.go | ||
stream_id_test.go | ||
stream_tags.go | ||
tenant_id.go | ||
tenant_id_test.go | ||
tokenizer.go | ||
tokenizer_test.go | ||
tokenizer_timing_test.go | ||
u128.go | ||
u128_test.go | ||
values_encoder.go | ||
values_encoder_test.go | ||
values_encoder_timing_test.go |