VictoriaMetrics/lib/logstorage
Aliaksandr Valialkin 7bb5f75a2a
lib/logstorage: follow-up for 94627113db
- Move uniqueFields from rows to blockStreamMerger struct.
  This allows localizing all the references to uniqueFields inside blockStreamMerger.mustWriteBlock(),
  which should improve readability and maintainability of the code.

- Remove logging of the event when blocks cannot be merged because they contain more than maxColumnsPerBlock,
  since the provided logging didn't provide the solution for the issue with too many columns.
  I couldn't figure out the proper solution, which could be helpful for end user,
  so decided to remove the logging until we find the solution.

This commit also contains the following additional changes:

- It truncates field names longer than 128 chars during logs ingestion.
  This should prevent from ingesting bogus field names.
  This also should prevent from too big columnsHeader blocks,
  which could negatively affect search query performance,
  since columnsHeader is read on every scan of the corresponding data block.

- It limits the maximum length of const column value to 256.
  Longer values are stored in an ordinary columns.
  This helps limiting the size of columnsHeader blocks
  and improving search query performance by avoiding
  reading too long const columns on every scan of the corresponding data block.

- It deduplicates columns with identical names during data ingestion
  and background merging. Previously it was possible to pass columns with duplicate names
  to block.mustInitFromRows(), and they were stored as is in the block.

Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4762
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/pull/4969
2023-10-02 21:06:49 +02:00
..
arena.go
block_data_test.go
block_data.go lib/logstorage: follow-up for 94627113db 2023-10-02 21:06:49 +02:00
block_header_test.go
block_header.go
block_search.go Makefile: update golangci-lint from v1.51.2 to v1.54.2 2023-09-01 10:25:49 +02:00
block_stream_merger.go lib/logstorage: follow-up for 94627113db 2023-10-02 21:06:49 +02:00
block_stream_reader.go
block_stream_writer.go
block_test.go
block_timing_test.go
block.go lib/logstorage: follow-up for 94627113db 2023-10-02 21:06:49 +02:00
bloomfilter_test.go
bloomfilter.go
consts.go lib/logstorage: follow-up for 94627113db 2023-10-02 21:06:49 +02:00
datadb_test.go
datadb.go lib/logstorage: follow-up for 8a23d08c21 2023-10-02 20:38:00 +02:00
encoding_test.go lib/logstorage: fix make test-pure tests 2023-07-06 22:22:08 -07:00
encoding_timing_test.go
encoding.go
filenames.go
filters_test.go lib/logstorage: follow-up for 8a23d08c21 2023-10-02 20:38:00 +02:00
filters.go lib/logstorage: follow-up for 8a23d08c21 2023-10-02 20:38:00 +02:00
hash128_test.go
hash128_timing_test.go
hash128.go
index_block_header_test.go
index_block_header.go
indexdb_test.go
indexdb.go app/vlstorage: expose vl_data_size_bytes metric at /metrics page for tracking the on-disk data size (both indexdb and the data itself) 2023-07-31 07:56:16 -07:00
inmemory_part_test.go lib/logstorage: go fmt 2023-07-06 22:24:18 -07:00
inmemory_part_timing_test.go
inmemory_part.go
log_rows_timing_test.go
log_rows.go lib/logstorage: follow-up for 94627113db 2023-10-02 21:06:49 +02:00
parser_test.go vmui: add Active Queries page (#4653) 2023-07-19 16:02:58 -07:00
parser.go lib/logstorage: properly encode "offset" search word just after _time filter 2023-07-18 16:03:57 -07:00
part_header_test.go
part_header.go
part.go
partition_test.go
partition.go lib/logstorage: follow-up for 8a23d08c21 2023-10-02 20:38:00 +02:00
rows_test.go
rows.go lib/logstorage: follow-up for 94627113db 2023-10-02 21:06:49 +02:00
storage_search_test.go lib/logstorage: follow-up for 8a23d08c21 2023-10-02 20:38:00 +02:00
storage_search.go
storage_test.go lib/logstorage: follow-up for 8a23d08c21 2023-10-02 20:38:00 +02:00
storage.go lib/logstorage: follow-up for 8a23d08c21 2023-10-02 20:38:00 +02:00
stream_filter.go
stream_id_test.go
stream_id.go
stream_tags.go
tenant_id_test.go app/vlinsert: add support of loki push protocol (#4482) 2023-07-20 16:49:43 -07:00
tenant_id.go app/vlinsert/loki: follow-up after 09df5b66fd 2023-07-20 21:52:11 -07:00
tokenizer_test.go
tokenizer_timing_test.go
tokenizer.go
u128_test.go
u128.go
values_encoder_test.go lib/logstorage: fix TestValuesEncoder() on 32-bit architectures 2023-07-13 11:28:04 -07:00
values_encoder_timing_test.go
values_encoder.go lib/logstorage: follow-up for 94627113db 2023-10-02 21:06:49 +02:00