VictoriaMetrics/lib/mergeset
Aliaksandr Valialkin 8aa9bba9bd lib/{mergeset,storage}: switch from sync.Pool to chan-based pool for inmemoryPart objects
This should reduce memory usage on systems with big number of CPU cores,
since every inmemoryPart object occupies at least 64KB of memory and sync.Pool maintains
a separate pool inmemoryPart objects per each CPU core.

Though the new scheme for the pool worsens per-cpu cache locality, this should be amortized
by big sizes of inmemoryPart objects.
2021-07-06 16:28:41 +03:00
..
block_header.go lib/{mergeset,storage}: do not use pools for indexBlock and inmemoryBlock during their caching, since this results in higher memory usage in production without any performance gains 2021-02-21 21:18:59 +02:00
block_stream_reader.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:06:47 +02:00
block_stream_reader_test.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:06:47 +02:00
block_stream_writer.go all: use %w instead of %s for wrapping errors in fmt.Errorf 2020-06-30 23:05:11 +03:00
encoding.go lib/mergeset: increase pool capacity for inmemoryBlock according to collected profiles from production workload 2021-07-06 13:41:34 +03:00
encoding_test.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:06:47 +02:00
encoding_timing_test.go all: open-sourcing single-node version 2019-05-23 00:18:06 +03:00
inmemory_part.go lib/{mergeset,storage}: switch from sync.Pool to chan-based pool for inmemoryPart objects 2021-07-06 16:28:41 +03:00
merge.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:06:47 +02:00
merge_test.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:06:47 +02:00
metaindex_row.go lib: dump compressed block contents on error during decompression 2020-08-15 14:44:33 +03:00
part.go lib/{storage,mergeset}: increase cache timeout for data and index blocks from a minute to two minutes 2021-07-05 15:16:11 +03:00
part_header.go all: use %w instead of %s for wrapping errors in fmt.Errorf 2020-06-30 23:05:11 +03:00
part_search.go Revert "lib/mergeset: remove a pool for inmemoryBlock structs" 2021-05-28 01:09:32 +03:00
part_search_test.go lib/mergeset: unconditionally cache indexdb blocks 2021-02-09 00:47:50 +02:00
table.go lib/mergeset: limit the frequency for flushCallback calls to once per 10 seconds 2021-07-06 12:17:17 +03:00
table_search.go lib/mergeset: unconditionally cache indexdb blocks 2021-02-09 00:47:50 +02:00
table_search_test.go lib/mergeset: unconditionally cache indexdb blocks 2021-02-09 00:47:50 +02:00
table_search_timing_test.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:06:47 +02:00
table_test.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:06:47 +02:00