VictoriaMetrics/lib/mergeset
Aliaksandr Valialkin b7c0b3dde3 lib/mergeset: switch from sync.Pool to a channel for a pool for inmemoryBlock structs
This should reduce memory usage for the pool on systems with big number of CPU cores.

The sync.Pool maintains per-CPU pools, so the total number of objects in the pool
is proportional to the number of available CPU cores. The channel limits the number
of pooled objects by its own capacity. This means smaller number of pooled objects on average.
2021-06-29 19:57:52 +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:43:37 +02:00
block_stream_reader.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:09:10 +02:00
block_stream_reader_test.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:09:10 +02:00
block_stream_writer.go all: use %w instead of %s for wrapping errors in fmt.Errorf 2020-06-30 23:33:46 +03:00
encoding.go lib/mergeset: switch from sync.Pool to a channel for a pool for inmemoryBlock structs 2021-06-29 19:57:52 +03:00
encoding_test.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:09:10 +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: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:09:10 +02:00
merge.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:09:10 +02:00
merge_test.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:09:10 +02:00
metaindex_row.go lib: dump compressed block contents on error during decompression 2020-08-15 14:51:14 +03:00
part.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:43:37 +02:00
part_header.go all: use %w instead of %s for wrapping errors in fmt.Errorf 2020-06-30 23:33:46 +03:00
part_search.go Revert "lib/mergeset: remove a pool for inmemoryBlock structs" 2021-05-28 01:11:22 +03:00
part_search_test.go lib/mergeset: unconditionally cache indexdb blocks 2021-02-09 00:49:59 +02:00
table.go lib/{mergeset,storage}: reduce the number of fsync calls on data ingestion path on systems with many cpu cores 2021-06-17 13:51:42 +03:00
table_search.go lib/mergeset: unconditionally cache indexdb blocks 2021-02-09 00:49:59 +02:00
table_search_test.go lib/mergeset: unconditionally cache indexdb blocks 2021-02-09 00:49:59 +02:00
table_search_timing_test.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:09:10 +02:00
table_test.go lib/mergeset: reduce memory usage for inmemoryBlock by using more compact items representation 2021-02-21 22:09:10 +02:00