diff --git a/CHANGELOG.md b/CHANGELOG.md index c564fe21d72..44d2ed3959b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ * [ENHANCEMENT] Add support to tempo workloads to `overrides` from single configmap in microservice mode. [#896](https://github.com/grafana/tempo/pull/896) (@kavirajk) * [ENHANCEMENT] Make `overrides_config` block name consistent with Loki and Cortex in microservice mode. [#906](https://github.com/grafana/tempo/pull/906) (@kavirajk) * [ENHANCEMENT] Make `overrides_config` mount name static `tempo-overrides` in the tempo workloads in microservice mode. [#906](https://github.com/grafana/tempo/pull/914) (@kavirajk) - +* [ENHANCEMENT] Reduce compactor memory usage by forcing garbage collection. [#915](https://github.com/grafana/tempo/pull/915) (@joe-elliott) ## v1.1.0-rc.0 / 2021-08-11 diff --git a/tempodb/compactor.go b/tempodb/compactor.go index 7ee95b3db72..ca9cc35729c 100644 --- a/tempodb/compactor.go +++ b/tempodb/compactor.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "io" + "runtime" "sort" "strconv" "time" @@ -211,6 +212,7 @@ func (rw *readerWriter) compact(blockMetas []*backend.BlockMeta, tenantID string // write partial block if currentBlock.CurrentBufferLength() >= int(rw.compactorCfg.FlushSizeBytes) { + runtime.GC() tracker, err = appendBlock(rw, tracker, currentBlock) if err != nil { return errors.Wrap(err, "error writing partial block")