VictoriaMetrics/lib/logstorage
Zakhar Bessarab 8198e7241d
lib/mergeset: add sparse indexdb cache (#7269)
Related issue:
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/7182

- add a separate index cache for searches which might read through large
amounts of random entries. Primary use-case for this is retention and
downsampling filters, when applying filters background merge needs to
fetch large amount of random entries which pollutes an index cache.
Using different caches allows to reduce effect on memory usage and cache
efficiency of the main cache while still having high cache hit rate. A
separate cache size is 5% of allowed memory.

- reduce size of indexdb/dataBlocks cache in order to free memory for
new sparse cache. Reduced size by 5% and moved this to a separate cache.

- add a separate metricName search which does not cache metric names -
this is needed in order to allow disabling metric name caching when
applying downsampling/retention filters. Applying filters during
background merge accesses random entries, this fills up cache and does
not provide an actual improvement due to random access nature.

Merge performance and memory usage stats before and after the change:

- before

![image](https://github.com/user-attachments/assets/485fffbb-c225-47ae-b5c5-bc8a7c57b36e)

- after

![image](https://github.com/user-attachments/assets/f4ba3440-7c1c-4ec1-bc54-4d2ab431eef5)

---------

Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>
(cherry picked from commit 837d0d136d)
2024-10-24 12:43:06 -03:00
..
arena.go lib/logstorage: work-in-progress 2024-05-20 04:09:15 +02:00
arena_test.go lib/logstorage: work-in-progress 2024-05-20 04:09:15 +02:00
bitmap.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
bitmap_test.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
bitmap_timing_test.go lib/logstorage: work-in-progress 2024-06-10 18:42:31 +02:00
block.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
block_data.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
block_data_test.go lib/logstorage: initial implementation of pipes in LogsQL 2024-05-12 16:36:01 +02:00
block_header.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
block_header_test.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
block_result.go lib/logstorage: optimize performance for queries, which select all the log fields for logs containing hundreds of log fields (aka "wide events") 2024-10-18 11:42:15 +02:00
block_search.go lib/logstorage: optimize performance for queries, which select all the log fields for logs containing hundreds of log fields (aka "wide events") 2024-10-18 11:42:15 +02:00
block_stream_merger.go all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
block_stream_reader.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
block_stream_writer.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
block_test.go lib/logstorage: initial implementation of pipes in LogsQL 2024-05-12 16:36:01 +02:00
block_timing_test.go app/victoria-logs: initial code release 2023-07-06 17:30:05 -07:00
bloomfilter.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
bloomfilter_test.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
cache.go lib/logstorage: use simpler in-memory cache instead of workingsetcache for caching recently ingested _stream values and recently queried set of streams 2024-10-18 11:42:16 +02:00
cache_test.go lib/logstorage: use simpler in-memory cache instead of workingsetcache for caching recently ingested _stream values and recently queried set of streams 2024-10-18 11:42:16 +02:00
column_names.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
column_names_test.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
consts.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
datadb.go app/vlstorage: add support for forced merge via /internal/force_merge HTTP endpoint 2024-10-15 11:49:31 +02:00
datadb_test.go app/victoria-logs: initial code release 2023-07-06 17:30:05 -07:00
encoding.go lib/encoding: optimize UnmarshalVarUint64, UnmarshalVarInt64 and UnmarshalBytes a bit 2024-05-14 01:30:25 +02:00
encoding_test.go lib/logstorage: fix make test-pure tests 2023-07-06 22:22:08 -07:00
encoding_timing_test.go app/victoria-logs: initial code release 2023-07-06 17:30:05 -07:00
fields_set.go lib/logstorage: work-in-progress 2024-05-30 16:19:36 +02:00
fields_set_test.go lib/logstorage: work-in-progress 2024-05-20 04:09:15 +02:00
filenames.go lib/logstorage: do not persist streamIDCache, since it may go out of sync with partition directories, which can be changed manually between VictoriaLogs restarts 2024-10-18 11:42:16 +02:00
filter.go lib/logstorage: work-in-progress 2024-05-20 04:09:15 +02:00
filter_and.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_and_test.go lib/logstorage: preserve the order of tokens to check against bloom filters in AND filters 2024-09-08 12:28:34 +02:00
filter_any_case_phrase.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_any_case_phrase_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_any_case_prefix.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_any_case_prefix_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_day_range.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
filter_day_range_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_exact.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_exact_prefix.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_exact_prefix_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_exact_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_in.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_in_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_ipv4_range.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_ipv4_range_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_len_range.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_len_range_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_noop.go lib/logstorage: work-in-progress 2024-06-04 01:50:55 +02:00
filter_not.go lib/logstorage: allow using - instead of ! as a shorthand for NOT operator in LogsQL 2024-09-27 13:15:55 +02:00
filter_not_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_or.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_or_test.go lib/logstorage: preserve the order of tokens to check against bloom filters in AND filters 2024-09-08 12:28:34 +02:00
filter_phrase.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_phrase_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_prefix.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_prefix_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_range.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_range_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_regexp.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_regexp_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_sequence.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_sequence_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_stream.go lib/logstorage: support skipping _stream: prefix for stream filters 2024-09-27 13:15:55 +02:00
filter_stream_id.go lib/logstorage: work-in-progress 2024-06-25 00:44:57 +02:00
filter_stream_id_test.go lib/logstorage: work-in-progress 2024-06-25 00:44:57 +02:00
filter_string_range.go lib/logstorage: move getConstColumnValue() and getColumnHeader() methods from columnsHeader to blockSearch 2024-10-15 11:49:30 +02:00
filter_string_range_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_test.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
filter_time.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
filter_time_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
filter_timing_test.go lib/logstorage: initial implementation of pipes in LogsQL 2024-05-12 16:36:01 +02:00
filter_week_range.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
filter_week_range_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
hash128.go app/victoria-logs: initial code release 2023-07-06 17:30:05 -07:00
hash128_test.go app/victoria-logs: initial code release 2023-07-06 17:30:05 -07:00
hash128_timing_test.go lib/logstorage: consistently use atomic.* types instead of atomic.* functions on regular types 2024-02-24 00:29:39 +02:00
hash_tokenizer.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
hash_tokenizer_test.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
hash_tokenizer_timing_test.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
if_filter.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
index_block_header.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
index_block_header_test.go app/victoria-logs: initial code release 2023-07-06 17:30:05 -07:00
indexdb.go lib/mergeset: add sparse indexdb cache (#7269) 2024-10-24 12:43:06 -03:00
indexdb_test.go lib/logstorage: work-in-progress 2024-06-20 03:10:37 +02:00
inmemory_part.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
inmemory_part_test.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
inmemory_part_timing_test.go app/victoria-logs: initial code release 2023-07-06 17:30:05 -07:00
json_parser.go lib/logstorage: work-in-progress 2024-06-17 12:13:25 +02:00
json_parser_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
log_rows.go lib/logstorage: work-in-progress 2024-06-17 12:13:25 +02:00
log_rows_timing_test.go app/victoria-logs: initial code release 2023-07-06 17:30:05 -07:00
logfmt_parser.go lib/logstorage: work-in-progress 2024-06-04 01:50:55 +02:00
logfmt_parser_test.go app/vlselect: do not show empty fields in query results 2024-10-15 11:49:32 +02:00
parser.go lib/logstorage: follow-up for 72941eac36 2024-10-17 11:09:16 -03:00
parser_test.go lib/logstorage: follow-up for 72941eac36 2024-10-17 11:09:16 -03:00
part.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
part_header.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
part_header_test.go app/victoria-logs: initial code release 2023-07-06 17:30:05 -07:00
partition.go lib/logstorage: use simpler in-memory cache instead of workingsetcache for caching recently ingested _stream values and recently queried set of streams 2024-10-18 11:42:16 +02:00
partition_test.go lib/logstorage: use simpler in-memory cache instead of workingsetcache for caching recently ingested _stream values and recently queried set of streams 2024-10-18 11:42:16 +02:00
pattern.go lib/logstorage: work-in-progress 2024-05-24 03:07:07 +02:00
pattern_test.go lib/logstorage: work-in-progress 2024-05-24 03:07:07 +02:00
pattern_timing_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
pipe.go lib/logstorage: disallow using by as the first word in log filters, since it frequently clashes with stats by(...) pipe where stats word is omitted 2024-10-11 14:27:46 +02:00
pipe_blocks_count.go lib/logstorage: add blocks_count pipe 2024-09-25 19:18:38 +02:00
pipe_blocks_count_test.go lib/logstorage: add blocks_count pipe 2024-09-25 19:18:38 +02:00
pipe_copy.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_copy_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
pipe_delete.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_delete_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
pipe_drop_empty_fields.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_drop_empty_fields_test.go lib/logstorage: work-in-progress 2024-06-04 01:50:55 +02:00
pipe_extract.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_extract_regexp.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_extract_regexp_test.go lib/logstorage: work-in-progress 2024-05-28 19:29:50 +02:00
pipe_extract_test.go lib/logstorage: work-in-progress 2024-05-28 19:29:50 +02:00
pipe_field_names.go lib/logstorage: consistently use "pHits := m[..]" pattern 2024-10-18 11:42:16 +02:00
pipe_field_names_test.go lib/logstorage: work-in-progress 2024-05-24 03:07:07 +02:00
pipe_field_values.go lib/logstorage: add len pipe for calculating byte length of log field values 2024-10-04 10:42:51 +02:00
pipe_field_values_test.go lib/logstorage: add len pipe for calculating byte length of log field values 2024-10-04 10:42:51 +02:00
pipe_fields.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_fields_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
pipe_filter.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_filter_test.go lib/logstorage: work-in-progress 2024-06-10 18:42:31 +02:00
pipe_format.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_format_test.go lib/logstorage: work-in-progress 2024-06-05 03:18:25 +02:00
pipe_len.go lib/logstorage: add len pipe for calculating byte length of log field values 2024-10-04 10:42:51 +02:00
pipe_len_test.go lib/logstorage: add len pipe for calculating byte length of log field values 2024-10-04 10:42:51 +02:00
pipe_limit.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_limit_test.go lib/logstorage: work-in-progress 2024-05-28 19:29:50 +02:00
pipe_math.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_math_test.go lib/logstorage: substitute | operator with or operator at math pipe 2024-09-06 22:43:29 +02:00
pipe_offset.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_offset_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
pipe_pack.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_pack_json.go lib/logstorage: work-in-progress 2024-06-27 14:21:03 +02:00
pipe_pack_json_test.go app/vlselect: do not show empty fields in query results 2024-10-15 11:49:32 +02:00
pipe_pack_logfmt.go lib/logstorage: work-in-progress 2024-06-27 14:21:03 +02:00
pipe_pack_logfmt_test.go lib/logstorage: quote logfmt strings only if they contain special chars, which could break logfmt parsing and/or reading 2024-10-07 14:47:22 +02:00
pipe_rename.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_rename_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
pipe_replace.go lib/logstorage: work-in-progress 2024-06-27 14:21:03 +02:00
pipe_replace_regexp.go lib/logstorage: work-in-progress 2024-06-27 14:21:03 +02:00
pipe_replace_regexp_test.go lib/logstorage: work-in-progress 2024-05-25 21:36:24 +02:00
pipe_replace_test.go lib/logstorage: work-in-progress 2024-05-25 21:36:24 +02:00
pipe_sort.go lib/logstorage: postpone initialization of per-shard stateSizeBudget until the first call to pipeProcessor.writeBlock() 2024-09-29 10:29:49 +02:00
pipe_sort_test.go lib/logstorage: support order alias for sort pipe 2024-09-29 09:52:18 +02:00
pipe_sort_topk.go lib/logstorage: postpone initialization of per-shard stateSizeBudget until the first call to pipeProcessor.writeBlock() 2024-09-29 10:29:49 +02:00
pipe_stats.go lib/logstorage: optimize 'stats by(...)' calculations for by(...) fields with millions of unique values on multi-CPU systems 2024-10-18 11:42:15 +02:00
pipe_stats_test.go lib/logstorage: work-in-progress 2024-05-30 16:19:36 +02:00
pipe_stream_context.go lib/logstorage: postpone initialization of per-shard stateSizeBudget until the first call to pipeProcessor.writeBlock() 2024-09-29 10:29:49 +02:00
pipe_stream_context_test.go lib/logstorage: improve performance for stream_context pipe over streams with big number of log entries 2024-09-26 22:31:05 +02:00
pipe_top.go lib/logstorage: optimize 'stats by(...)' calculations for by(...) fields with millions of unique values on multi-CPU systems 2024-10-18 11:42:15 +02:00
pipe_top_test.go lib/logstorage: work-in-progress 2024-06-17 12:13:25 +02:00
pipe_uniq.go lib/logstorage: consistently use "pHits := m[..]" pattern 2024-10-18 11:42:16 +02:00
pipe_uniq_test.go lib/logstorage: return the expected hits results from uniq pipe when the number of unique values reaches the specified limit 2024-09-29 10:53:44 +02:00
pipe_unpack.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_unpack_json.go lib/logstorage: work-in-progress 2024-06-27 14:21:03 +02:00
pipe_unpack_json_test.go lib/logstorage: work-in-progress 2024-05-25 21:36:24 +02:00
pipe_unpack_logfmt.go lib/logstorage: work-in-progress 2024-06-27 14:21:03 +02:00
pipe_unpack_logfmt_test.go lib/logstorage: work-in-progress 2024-06-04 01:50:55 +02:00
pipe_unpack_syslog.go lib/logstorage: work-in-progress 2024-06-27 14:21:03 +02:00
pipe_unpack_syslog_test.go lib/logstorage: work-in-progress 2024-06-17 12:13:25 +02:00
pipe_unroll.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_unroll_test.go lib/logstorage: work-in-progress 2024-05-30 16:19:36 +02:00
pipe_update.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
pipe_utils_test.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
rows.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
rows_test.go lib/logstorage: use quicktemplate.AppendJSONString instead of strconv.AppendQuote for encoding JSON strings 2024-07-05 01:22:49 +02:00
stats_avg.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_avg_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_count.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
stats_count_empty.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
stats_count_empty_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_count_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_count_uniq.go lib/logstorage: do not count dictionary values which have no matching logs in count_uniq stats function 2024-10-01 13:36:27 +02:00
stats_count_uniq_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_max.go lib/logstorage: improve performance for stream_context pipe over streams with big number of log entries 2024-09-26 22:31:05 +02:00
stats_max_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_median.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_median_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_min.go lib/logstorage: improve performance for stream_context pipe over streams with big number of log entries 2024-09-26 22:31:05 +02:00
stats_min_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_quantile.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
stats_quantile_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_row_any.go lib/logstorage: read timestamps column when it is really needed during query execution 2024-09-25 19:18:37 +02:00
stats_row_any_test.go app/vlselect: do not show empty fields in query results 2024-10-15 11:49:32 +02:00
stats_row_max.go lib/logstorage: improve performance for stream_context pipe over streams with big number of log entries 2024-09-26 22:31:05 +02:00
stats_row_max_test.go app/vlselect: do not show empty fields in query results 2024-10-15 11:49:32 +02:00
stats_row_min.go lib/logstorage: improve performance for stream_context pipe over streams with big number of log entries 2024-09-26 22:31:05 +02:00
stats_row_min_test.go app/vlselect: do not show empty fields in query results 2024-10-15 11:49:32 +02:00
stats_sum.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_sum_len.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_sum_len_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_sum_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
stats_uniq_values.go lib/logstorage: return the expected hits results from uniq pipe when the number of unique values reaches the specified limit 2024-09-29 10:53:44 +02:00
stats_uniq_values_test.go lib/logstorage: work-in-progress 2024-05-25 00:31:55 +02:00
stats_values.go lib/logstorage: return the expected hits results from uniq pipe when the number of unique values reaches the specified limit 2024-09-29 10:53:44 +02:00
stats_values_test.go lib/logstorage: work-in-progress 2024-05-22 21:01:28 +02:00
storage.go lib/logstorage: use simpler in-memory cache instead of workingsetcache for caching recently ingested _stream values and recently queried set of streams 2024-10-18 11:42:16 +02:00
storage_search.go lib/logstorage: consistently use "pHits := m[..]" pattern 2024-10-18 11:42:16 +02:00
storage_search_test.go lib/logstorage: return the expected hits results from uniq pipe when the number of unique values reaches the specified limit 2024-09-29 10:53:44 +02:00
storage_test.go lib/logstorage: consistently use nsecsPerDay constant and remove nsecPerDay constant 2024-09-06 16:18:15 +02:00
stream_filter.go lib/logstorage: work-in-progress 2024-05-20 04:09:15 +02:00
stream_filter_test.go lib/logstorage: work-in-progress 2024-05-20 04:09:15 +02:00
stream_id.go lib/logstorage: improve performance for streamID.marshalString() by more than 2x 2024-09-24 18:38:21 +02:00
stream_id_test.go lib/logstorage: add benchmark for streamID.marshalString 2024-09-24 18:38:21 +02:00
stream_id_timing_test.go lib/logstorage: add benchmark for streamID.marshalString 2024-09-24 18:38:21 +02:00
stream_tags.go app/vlinsert/loki: use easyproto instead for parsing Loki protobuf messages 2024-07-10 03:05:55 +02:00
stringbucket.go lib/logstorage: initial implementation of pipes in LogsQL 2024-05-12 16:36:01 +02:00
syslog_parser.go app/vlinsert: support _time field without timezone information during data ingestion 2024-09-26 12:50:14 +02:00
syslog_parser_test.go app/vlselect: do not show empty fields in query results 2024-10-15 11:49:32 +02:00
tenant_id.go lib/logstorage: improve performance for streamID.marshalString() by more than 2x 2024-09-24 18:38:21 +02:00
tenant_id_test.go lib: consistently use f-tests instead of table-driven tests 2024-07-09 22:39:13 +02:00
tokenizer.go lib/logstorage: refactor storage format to be more efficient for querying wide events 2024-10-17 11:09:16 -03:00
tokenizer_test.go lib/logstorage: initial implementation of pipes in LogsQL 2024-05-12 16:36:01 +02:00
tokenizer_timing_test.go app/victoria-logs: initial code release 2023-07-06 17:30:05 -07:00
u128.go lib/logstorage: improve performance for streamID.marshalString() by more than 2x 2024-09-24 18:38:21 +02:00
u128_test.go app/victoria-logs: initial code release 2023-07-06 17:30:05 -07:00
values_encoder.go lib/logstorage: avoid redundant copying of column names and column values for dictionary-encoded columns during querying 2024-10-15 11:49:30 +02:00
values_encoder_test.go app/vlinsert: support _time field without timezone information during data ingestion 2024-09-26 12:50:14 +02:00
values_encoder_timing_test.go lib/logstorage: properly parse timezone offset at TryParseTimestampRFC3339Nano() 2024-06-25 14:54:24 +02:00